WiX Setup Project に構成依存のプロジェクト出力を含めるにはどうすればよいですか? たとえば、1 つの .NET アプリケーションと 1 つの Wix セットアップ プロジェクトを含む Visual Studio ソリューションを見てみましょう。
Setup プロジェクトに .NET アプリへの参照を追加し、セットアップ ソースにコンポーネントを作成しました。
<Component Guid="EB0CBC32-5AE5-41B3-A343-FEBE044AC30A">
<File Source="$(var.MyApp.TargetPath)" KeyPath="yes"/>
</Component>
したがって、WiX のリリースセットアップ msiには MyAppのリリースバージョンが、デバッグ msi にはデバッグ バージョンがそれぞれ含まれると思います。そうでなければ、プロジェクトの出力への参照は意味がありません。
ただし、常にデバッグ バージョンがあります。私は何を間違っていますか?
アップデート。
以下は、VS 出力ウィンドウからのキャンドルのコマンド プロンプトです。
------ Rebuild All started: Project: MySetup, Configuration: Release x86 ------
C:\Program Files\WiX Toolset v3.6\bin\candle.exe -d"DevEnvDir=C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\" -dSolutionDir=D:\Projects\Research\Wix_ProjectOutput\ -dSolutionExt=.sln -dSolutionFileName=Wix_ProjectOutput.sln -dSolutionName=Wix_ProjectOutput -dSolutionPath=D:\Projects\Research\Wix_ProjectOutput\Wix_ProjectOutput.sln -dConfiguration=リリース -dOutDir=..\Release\ -dPlatform=x86 -dProjectDir=D :\Projects\Research\Wix_ProjectOutput\MySetup\ -dProjectExt=.wixproj -dProjectFileName=MySetup.wixproj -dProjectName=MySetup -dProjectPath=D:\Projects\Research\Wix_ProjectOutput\MySetup\MySetup.wixproj -dTargetDir=D:\Projects\ Research\Wix_ProjectOutput\Release\ -dTargetExt=.msi -dTargetFileName=MySetup.msi -dTargetName=MySetup -dTargetPath=D:\Projects\Research\Wix_ProjectOutput\Release\MySetup.msi -dMyApplication.Configuration=Debug -d"MyApplication.FullConfiguration=Debug|x86" -dMyApplication.Platform=x86 -dMyApplication.ProjectDir=D:\Projects\Research\Wix_ProjectOutput\MyApplication\ -dMyApplication.ProjectExt=.csproj -dMyApplication.ProjectFileName =MyApplication.csproj -dMyApplication.ProjectName=MyApplication -dMyApplication.ProjectPath=D:\Projects\Research\Wix_ProjectOutput\MyApplication\MyApplication.csproj -dMyApplication.TargetDir=D:\Projects\Research\Wix_ProjectOutput\Debug\ -dMyApplication.TargetExt= .exe -dMyApplication.TargetFileName=MyApplication.exe -dMyApplication.TargetName=MyApplication -dMyApplication.TargetPath=D:\Projects\Research\Wix_ProjectOutput\Debug\MyApplication.exe -out obj\Release\ -arch x86 Product.wxs
MySetup のリリースビルドで MyApplication のデバッグ構成が使用されたのはなぜですか??
更新 2。
コマンド ラインから msbuild を使用した場合の、candle のコマンド プロンプトは次のとおりです。
%windir%\Microsoft.NET\Framework\v4.0.30319\MsBuild.exe /verbosity:d /t:rebuild /fileLogger /p:Configuration=Release Wix_ProjectOutput.sln
でmsbuild.log
:
C:\Program Files\WiX Toolset v3.6\bin\candle.exe -d"DevEnvDir= Visual Studio 内からビルドしない場合は未定義" -dSolutionDir=D:\Projects\Research\Wix_ProjectOutput\ -dSolutionExt=.sln -dSolutionFileName =Wix_ProjectOutput.sln -dSolutionName=Wix_ProjectOutput -dSolutionPath=D:\Projects\Research\Wix_ProjectOutput\Wix_ProjectOutput.sln -dConfiguration=リリース -dOutDir=..\Release\ -dPlatform=x86 -dProjectDir=D:\Projects\Research\Wix_ProjectOutput \MySetup\ -dProjectExt=.wixproj -dProjectFileName=MySetup.wixproj -dProjectName=MySetup -dProjectPath=D:\Projects\Research\Wix_ProjectOutput\MySetup\MySetup.wixproj -dTargetDir=D:\Projects\Research\Wix_ProjectOutput\Release\ - dTargetExt=.msi -dTargetFileName=MySetup.msi -dTargetName=MySetup -dTargetPath=D:\Projects\Research\Wix_ProjectOutput\Release\MySetup.msi-dMyApplication.Configuration=Release -d"MyApplication.FullConfiguration=Release|x86" -dMyApplication.Platform=x86 -dMyApplication.ProjectDir=D:\Projects\Research\Wix_ProjectOutput\MyApplication\ -dMyApplication.ProjectExt=.csproj -dMyApplication.ProjectFileName =MyApplication.csproj -dMyApplication.ProjectName=MyApplication -dMyApplication.ProjectPath=D:\Projects\Research\Wix_ProjectOutput\MyApplication\MyApplication.csproj -dMyApplication.TargetDir=D:\Projects\Research\Wix_ProjectOutput\Release\ -dMyApplication.TargetExt= .exe -dMyApplication.TargetFileName=MyApplication.exe -dMyApplication.TargetName=MyApplication -dMyApplication.TargetPath=D:\Projects\Research\Wix_ProjectOutput\Release\MyApplication.exe -out obj\Release\ -arch x86 Product.wxs
したがって、msbuild の下ではすべて問題ありません。
更新 3。
WiX はアクティブなビルド構成を使用しているようです (VS ツールバーのコンボボックスを参照)。
つまり、Debug
そこで が選択されている場合、WiX プロジェクトには参照プロジェクトのデバッグ出力が含まれます。が選択されている場合Release
、WiX プロジェクトにはリリース出力が含まれます。
この動作は、私の観点からは正しくありません。Debug
インストーラーには、参照プロジェクトのデバッグ出力が含まれている必要があります。Release
インストーラー -出力をリリースします。
ここにバグを投稿しましたが、現在は何の説明もなくクローズされています。
何か案は?