インストール中にCOMを表示する必要がある.NET4.0アセンブリがあります。私はWiX(バージョン3.5)を使用しているので、熱を使ってWiXフラグメントを生成するのが論理的なオプションです。これは問題なく機能しますが、熱でノブをどのようにいじっても、CodeBase RegistryValuesのデフォルトは「file:/// C:/Windows/Microsoft.Net/assembly/GAC_32 / ...」ですが、アセンブリは間違いなくそうではありません。そのディレクトリにインストールされます。
そのため、レジストリエントリはインストール中に正しく追加されますが、存在しないアセンブリを指します。悲しい日。この問題は、可能な限り単純なユースケース( "heat asm.dll -out asm.wxs")でも発生します。
これまでのところ、オプションは次のようです。
WiXプロジェクトの他の場所でアセンブリのインストールを処理し、フラグメント内のCodeBase宣言を手動で変更してから、WiXツールチェーンの残りの部分に渡します。
Assembly = "。net"属性をファイルタグに手動で追加します(http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/net-COM-registration-with-heat-td3606182.html)。
XSLTを使用してフラグメントを変換します(http://blog.accentient.com/2010/06/03/AddingHEATOutputToTheGAC.aspx)
これらのオプションはどれも特に魅力的ではありません。XSLTをいじることを伴わない、これを行う自動化された方法はありますか?