2012-06-29 108 views
4

所以,我寫了一個代碼,它使用了一些Microsoft Sql服務器DLL,這些DLL依賴於一些C++庫。最初代碼在客戶機上不工作,但是當我安裝C++ Redistributable Package時,它工作正常。C++可再發行組件包與WIX

我的問題是如何安裝這些依賴與我的代碼一起。我正在使用WIX來安裝該軟件。

感謝, 阿里

回答

6

這樣做:

首先獲得的C++可再發行合併模塊(MSM文件)。通常它們位於合併模塊文件夾(c:\ProgramFiles\Common Files\Merge Modules)(用於win x64 C:\ Program Files(x86)\ Common Files \ Merge模塊)中。他們的名字基於架構(32/64位)和VC++版本。

<DirectoryRef>標記爲您的目標目錄中添加一個<Merge>節點具有這些屬性:

<DirectoryRef> 
    <Merge 
     Id="MSVCRedist" DiskId="1" Language="0" 
     SourceFile="Microsoft_VC90_CRT_x86.msm"/> 
</DirectoryRef> 

添加<Feature>

<Feature 
    Id="VCRedist" AllowAdvertise="no" Display="hidden" Level="1" 
    Title="Visual C++ 9.0 Runtime"/> 

參考<MergeRef>添加到裏面的前面加<Merge><Feature>定義:

<MergeRef Id="MSVCRedist"/> 

該示例已被提取from here

+0

我試過了,它沒有工作。它仍然給錯誤VC80.CRT未安裝。我可以在安裝程序中添加完整的Redistributable軟件包嗎? – Ali

+0

您可以使用[WiX引導程序刻錄](http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn)來運行可執行文件重做程序。此外,我建議檢查已安裝redist的位置以及安裝後SQL Server DLL的位置。 –

相關問題