我有一個WIX安裝程序,我還需要安裝VC++ 2015運行時可執行文件。我正在使用vcredist_x64.exe而不是合併模塊(see this thread)。在我的msi使用自定義操作完成安裝應用程序後,我可以成功啓動vcredist_x64.exe ...但是,我想要執行的操作是首先檢查運行時文件是否已經存在。如果他們這樣做,那麼我會完成而不運行vcredist_x64.exe。否則,我將運行自定義操作以安裝運行時。退出WIX條件消息
它採取了一些挖掘,但我能找到的是2015年的運行時間有如下注冊表項:
HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \微軟\ VisualStudio的\ 14.0 \ VC \運行時\ x64的
與已安裝值如果它們存在。
所以,在我.wxs文件我有以下注冊表搜索:
<!-- Visual C++ 2015 x64 -->
<Property Id="VCREDISTRUNTIMES2015INSTALLED">
<RegistrySearch Id="VCREDISTRUNTIMES2015SEARCH" Root="HKLM" Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" Name="Installed" Type="raw" />
</Property>
現在,我想要做的是顯示在我的退出對話的消息,其表示,如果運行時AREN」檢測到後,它會啓動安裝程序以在退出時安裝它們。類似這樣的:
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Visual C++ Redistributable for Visual Studio 2015 is Required. Installation will proceed on exit.">
<Condition>VCREDISTRUNTIMES2015INSTALLED</Condition>
</Property>
但是,這不起作用。我在條件標籤上看到一個錯誤,項目不會構建。假設我的註冊表搜索設置正確,有人可以告訴我如何正確地添加一個條件消息在我的退出對話框?謝謝!
如果你這樣做(我會使用WiX引導程序代替),請確保以下方案不會導致重新安裝VC運行時。 1)安裝你的應用程序。 2)卸載VC運行時。 3)卸載你的應用程序。 –
@TomBlodget我明白你在說什麼。但是,我試過你的用例,它似乎仍然工作正常。如果我安裝我的應用程序(使用VC運行時),然後卸載VC運行時,然後卸載我的應用程序......它不會在卸載時重新啓動VC運行時安裝程序。我有點期待它會,但它只是卸載我的應用程序,這就是全部。 – andyopayne