-1
데이터베이스에 sqlclr을 설치하는 wix 설치 프로그램이 있습니다. 스크립트를 실행하기 위해 sqlcmd를 사용하고 있습니다.WIX가 제거 중에 sqlcmd를 실행합니다.
사용자가 응용 프로그램을 제거 할 때 sqlclr도 제거하고 싶습니다. 이것은 내가 지금까지 가지고 있고 작동하지 않는 것입니다.
<InstallExecuteSequence>
<Custom Action="sqlcmd.install" After="InstallFiles">NOT Installed</Custom>
<!--Ensure this runs after the CA to set up the property for its cmd line-->
<Custom Action="sqlcmd" After="sqlcmd.install">NOT Installed</Custom>
<Custom Action="NewerVersion" After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
<RemoveExistingProducts After="InstallInitialize" />
<Custom Action="sqlcmd.uninstall" After="InstallInitialize">Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>
<!--Find sqlcmd.exe path-->
<Property Id="SQLBINDIR">
<RegistrySearch Id="SqlBinDir" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup" Name="Path" Type="raw" />
</Property>
<!--Need to use "property" CA to get variable substitution-->
<CustomAction Id="sqlcmd.install" Property="sqlcmd" Value=""[SQLBINDIR]sqlcmd.exe" -S [SQLSERVER] -d [SQLDATABASE] -U [SQLUSER] -P [SQLPASSWORD] -i "[#Install.sql]" -v PROGRAMDIR="[APPLICATIONFOLDER]"" />
<!--Note that the cmd line and args will come from a property with the same name as the CA, this has been set by the CA above-->
<CustomAction Id="sqlcmd" BinaryKey="WixCA" DllEntry="CAQuietExec" Return="check" Execute="deferred" Impersonate="yes" />
<CustomAction Id="sqlcmd.uninstall" Property="sqlcmd" Value=""[SQLBINDIR]sqlcmd.exe" -S [SQLSERVER] -d [SQLDATABASE] -U [SQLUSER] -P [SQLPASSWORD] -i "[#Uninstall.sql]"" />