2015-05-25 92 views
0

我可以在安裝包Wix Toolset上集成安裝程序Microsoft Visual C++ 2010可再發行組件嗎?Wix Toolset安裝C++ 2010 Redistributable

我嘗試過使用自定義操作,但如果正在進行其他安裝,則不會安裝。有人會有任何建議如何做?

另外一個問題。我可以在我創建的這個msi安裝程序中調用msi安裝程序?

+0

與論壇網站不同,我們不使用「謝謝」,或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –

回答

2

您不能進行遞歸MSI安裝 - 當出現明顯的風險時,當您收到錯誤「另一個安裝正在進行中」時,您認爲是其他安裝。

如果您使用合併模塊來安裝VC運行時,並且您有一個C++服務依賴於它們,並以StartServices(WiX ServiceControl)開始,那麼您可能會發現該服務無法啓動。這是因爲在執行StartServices操作之後的InstallFinalize之前,C++運行時的SxS版本纔可用。可能的解決方案如下:

使用C++運行庫的靜態鏈接構建服務,但隨後更新到VC++運行庫Dll將不會應用於您的構建二進制文件,以防出現問題。

在安裝自己的MSI文件之前,使用像Burn這樣的引導程序來運行VC++ redist exe。

將運行時Dll複製到您的應用程序文件夾作爲專用副本,將​​僅供您的應用程序使用。這種事情,老了,但仍然適用,我相信:

http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx

你可能會遇到使用合併模塊的另一個問題是,它們需要每臺機器安裝。如果您將其包含在每個用戶安裝中,則安裝將失敗。

1

您可以安裝使用C++運行時合併模塊的C++運行時文件:

How To: Install the Visual C++ Redistributable with your installer

和你的第二個問題:沒有 - 這是不可能的。

+0

例如,如果我花了Microsoft_VC120_CRT_x86.msm的工作原理,但是如果Microsoft_VC100_CRT_x86.msm用於創建服務postgres不運行。 –

相關問題