Den*_*nis 6 wix visual-studio-2010 wix3.6
我想知道,如何在WiX安装项目中包含依赖于配置的项目输出?例如,让我们看看带有一个.NET应用程序和一个Wix安装项目的Visual Studio解决方案.
我在安装项目中添加了对.NET应用程序的引用,并在安装源中创建了组件:
<Component Guid="EB0CBC32-5AE5-41B3-A343-FEBE044AC30A">
<File Source="$(var.MyApp.TargetPath)" KeyPath="yes"/>
</Component>
Run Code Online (Sandbox Code Playgroud)
因此,我预计,WiX将在其发布设置msi中包含MyApp 的发行版本,并在调试msi中分别包含调试版本.否则,对项目输出的引用对我来说没有意义.
但总有调试版本.我究竟做错了什么?
UPDATE.
这是来自VS输出窗口的蜡烛命令提示符:
------ Rebuild All started:项目:MySetup,配置:发布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.Pl atform = 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时,这是蜡烛的命令提示符:
%windir%\Microsoft.NET\Framework\v4.0.30319\MsBuild.exe /verbosity:d /t:rebuild /fileLogger /p:Configuration=Release Wix_ProjectOutput.sln
Run Code Online (Sandbox Code Playgroud)
在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\MyAp plication\-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安装程序 - 释放输出.
在这里发布了bug ,但现在关闭没有任何解释.
有任何想法吗?
您可以使用$(var.Configuration),它被设置为解决方案配置(Debug,Release等...):
<File Id="MyApp.exe" KeyPath="yes" Source="..\MyApp\$(var.Configuration)\MyApp.exe" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6168 次 |
| 最近记录: |