2009-10-12 50 views
0

我用我維克斯安裝下面的代碼。再發行失敗在Vista

<DirectoryRef Id="TARGETDIR"> 
    <Merge Id="CRT" Language="0" SourceFile=".\resources\Microsoft_VC90_CRT_x86.msm" DiskId="1" /> 
    <Merge Id="ATL" Language="0" SourceFile=".\resources\Microsoft_VC90_ATL_x86.msm" DiskId="1" /> 
    <Merge Id="MFC" Language="0" SourceFile=".\resources\Microsoft_VC90_MFC_x86.msm" DiskId="1" /> 
    <Merge Id="MFCLOC" Language="0" SourceFile=".\resources\Microsoft_VC90_MFCLOC_x86.msm" DiskId="1" /> 
    <Merge Id="OpenMP" Language="0" SourceFile=".\resources\Microsoft_VC90_OpenMP_x86.msm" DiskId="1" /> 
    <Merge Id="CRT Policy" Language="0" src=".\resources\policy_9_0_Microsoft_VC90_CRT_x86.msm" DiskId="1" /> 
    <Merge Id="MFC Policy" Language="0" src=".\resources\policy_9_0_Microsoft_VC90_MFC_x86.msm" DiskId="1" /> 
</DirectoryRef> 

<Feature Id="VCRedist" Title="Visual C++ 9.0 Runtime" AllowAdvertise="no" Display="hidden" Level="1"> 
    <MergeRef Id="CRT" /> 
    <MergeRef Id="CRT Policy"/> 
    <MergeRef Id="ATL" /> 
    <MergeRef Id="MFC" /> 
    <MergeRef Id="MFC Policy"/> 
    <MergeRef Id="MFCLOC" /> 
    <MergeRef Id="OpenMP" /> 
</Feature> 

我覺得微星建立與此代碼的工作在許多XP系統,但在Vista失敗。這些程序和快捷方式在Vista等XP中正常創建。

我應該在Vista做安裝這些再分發?我不想用bootstrapper創建setup.exe。我的要求聲明一切只在單個msi中。

任何代碼示例都會對我有所幫助。

預先感謝任何有價值的幫助。

問候,

tvks

回答

0

我認爲C++ REDIST是建議使用來自MS的預先包裝的MSI安裝的軟件包中的一個。另外我很確定您安裝程序中包含的所有合併模塊都需要相應的策略合併模塊,而不僅僅是crt和mfc。

另一件事來檢查,如果您的微星在Vista(UAC提示)適當提升

0

在我目前的項目中,我們安裝在你所描述的在您的文章同樣的方式再分發VC90。我們使用相同的屬性/值等。但是,我們不包含任何策略模塊。它可以在XP和Vista下運行。

的維克斯教程指出:

一般不存在需要包括政策的MSM作爲安裝的一部分。

因此,如果您還沒有嘗試過,請創建一個沒有任何策略的安裝,看看它是否更好。

相關問題