我已经在设置项目中添加了对.NET应用程序的引用,并在设置源代码中创建了组件:
<Component Guid="EB0CBC32-5AE5-41B3-A343-FEBE044AC30A">
<File Source="$(var.MyApp.TargetPath)" KeyPath="yes"/>
</Component>
因此,我期望WiX将在其发布设置msi中包含MyApp的发布版本,并在调试msi中包含调试版本。否则,对项目输出的引用对我来说毫无意义。
但是总有调试版本。 我做错了什么吗?
更新。 这是从VS输出窗口的candle命令提示符:
------ 重新生成全部开始: 项目: MySetup,配置: 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 = Release -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 = Release -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工具栏中的组合框)。
我的意思是,如果在那里选择了调试
,则WiX项目将包括引用项目的调试输出。 如果选择了发布
,则WiX项目将包括发布输出。
从我的角度来看,这种行为是不正确的。调试
安装程序必须包含引用项目的调试输出。发布
安装程序-发布输出。
发布问题在此处,但现在已关闭而没有任何解释。
有什么想法吗?