2016-09-06 12 views
0

私は、VS 2005マージモジュールをMSIに組み込んでいます。コードが適切に配置され、MSIが構築されます。私は、32ビットおよび64ビットのマージの両方を含めていますので、WiXとマージモジュール - ポリシーファイルを含めるかどうかを指定しますか?

1>light.exe(0,0): warning LGHT1076: ICE25: Possible dependency failure as we do not find [email protected] v in ModuleSignature table 
1>light.exe(0,0): warning LGHT1076: ICE25: Possible dependency failure as we do not find [email protected] v in ModuleSignature table 

二つのメッセージ:私は2つの警告が心配です

<Feature ...> 
     <ComponentRef Id="Client_Registry" /> 
     <?if $(var.Product) = xx ?> 
      <MergeRef Id="VCRedist2005_32"/> 
      <MergeRef Id="VCRedist2005_64"/> 
      <!-- 
      <MergeRef Id="VCRedistPolicy2005_32"/> 
      <MergeRef Id="VCRedistPolicy2005_64"/> 
      --> 
     <?endif?> 
    </Feature> 

<Fragment> 
    <DirectoryRef Id="TARGETDIR"> 

    <!-- 
    WiX docs say "There is generally no need to include the policy MSMs as part of the installation.", but, the former Installshield 
    project did include it, so, including here now. Remove it if it's actually not required. 
    http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_vcredist.html 
    --> 
    <Merge Id="VCRedist2005_32" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\Microsoft_VC80_CRT_x86.msm" DiskId="1" Language="0"/> 
    <Merge Id="VCRedist2005_64" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\Microsoft_VC80_CRT_x86_x64.msm" DiskId="1" Language="0"/> 
    <!-- 
    <Merge Id="VCRedistPolicy2005_32" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\policy_8_0_Microsoft_VC80_CRT_x86.msm" DiskId="1" Language="0"/> 
    <Merge Id="VCRedistPolicy2005_64" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\policy_8_0_Microsoft_VC80_CRT_x86_x64.msm" DiskId="1" Language="0"/> 
    --> 

    </DirectoryRef> 
</Fragment> 

そして、私のProduct.wxsで

モジュール。

wix page suggests not toがポリシーファイルを追加しませんでした。 MSブログのページもbacks that upです。しかし、そこにはthis oneのようなページがあります。そこにはアドバイスが含まれています。

だから、どうやって進めるのかは分かりません。ポリシーファイルを含めるべきかどうか?そうでない場合は、どうしてですか?

答えて

0

私はいつもvcredistランタイムをブートストラップすることを勧めました。私のMSIはすばらしく清潔に保ちます。

+0

これは可能です(私たちはVSM15に依存する次世代製品のためにMSMはありません)...しかし、私は(私が集めたものを、私が読んだことから理解しておく)MSI guiを複製してください。これは既にユーザにインストールオプションを提示し、動作します - 自分で書く必要のある新しいアプリケーションに変換します。ごくわずかな投資回収のために大規模な努力(承認さえする)のようだ(インストーラは単にそれを見て行動するだろう)。現時点では、現在のインストールを変更することはできません(削除と再インストールが必要)。 MSMルートに簡単に行くことができます! – Jon

+0

プライマリMSI UIを表示する書き込みブートストラップを作成できます。 Burnは連鎖と管理に優れていますが、Prereqと標準のMSIの非常に単純なシナリオが必要な場合は、InstallShieldセットアップのprereqs bootstrapperが簡単です。 –

+0

これは、VS2015で構築されたバージョンのアプリで強制されていることです。問題は、インストールを「変更」できないということです。 ARPエントリ(ブートストラップ用)には修正オプションと修復オプションがないため、インストールオプションを変更するには、アプリケーションを削除して再インストールする必要があります。ブートストラップARPエントリを隠すと(MSIエントリを表示するだけで)、修正/修復できますが、アンインストールではブートストラップがシステムから削除されず、後続のインストールが失敗します(前のバージョンを適切に削除するまで)。繰り返しますが、MSMルートを使用する方が簡単で簡単です。 – Jon

関連する問題