7

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インストーラー -出力をリリースします。

ここにバグを投稿しましたが、現在は何の説明もなくクローズされています。

何か案は?

4

3 に答える 3

10

ソリューション構成 (デバッグ、リリースなど) に設定されている $(var.Configuration) を使用できます。

<File Id="MyApp.exe" KeyPath="yes" Source="..\MyApp\$(var.Configuration)\MyApp.exe" />
于 2013-04-14T09:12:17.683 に答える
0

の変数を追加して、次の手順MyApplication.Configurationで設定してみてください。Release

  1. ソリューション エクスプローラーでプロジェクトの [参照] ノードを右クリックし、[参照の追加...] を選択します。
  2. [WiX ライブラリ参照の追加] ダイアログで、[プロジェクト] タブをクリックします。
  3. 目的のプロジェクトを選択して [追加] ボタンをクリックし、[OK] をクリックしてダイアログを閉じます。

詳細はこちら

于 2012-08-24T09:31:34.523 に答える