如何包括维克斯一个配置相关的项目输出3.6

如何包括维克斯一个配置相关的项目输出3.6

问题描述:

我想知道,如何为包括维克斯安装项目依赖的配置项目产出?例如,让我们看看带有一个.NET应用程序和一个Wix安装项目的Visual Studio解决方案。如何包括维克斯一个配置相关的项目输出3.6

我已在安装源安装项目以.NET应用程序的引用,并创建组件:

<Component Guid="EB0CBC32-5AE5-41B3-A343-FEBE044AC30A"> 
    <File Source="$(var.MyApp.TargetPath)" KeyPath="yes"/> 
    </Component> 

所以,我希望,这将维克斯包括发行 MyApp的版本在其发布安装msi,并分别在debug msi中调试版本。否则,参考项目输出对我来说没有意义。

但总调试版本。 我在做什么错?

UPDATE。

下面是来自VS输出窗口蜡烛的命令提示符:

------重建全部开始:项目:MySetup,配置:发行86 ------
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:\项目\研究\ Wix_ProjectOutput \ Wix_ProjectOutput.sln -dConfiguration =松开-dOutDir = .. \推出\ -dPlatform = 86 -dProjectD IR = d:\项目\研究\ Wix_ProjectOutput \ MySetup \ -dProjectExt = .wixproj -dProjectFileName = MySetup.wixproj -dProjectName = MySetup -dProjectPath = d:\项目\研究\ 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 \ -dMyApp lication.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的配置?

UPDATE 2

而这里的蜡烛的命令提示符下,使用命令行的MSBuild时:

%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工具集3.6版\ BIN \蜡烛。“-DSolutionDir = D:\ Projects \ Research \ Wix_ProjectOutput \ -dSolutionExt = .sln -dSolutionFileName = Wix_ProjectOutput.sln -dSolutionName = Wix_ProjectOutput -dSolutionPath = D:\”dev -d“DevEnvDir = 未定义,如果不是从Visual Studio内部构建的 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下一切正常。

UPDATE 3

看起来像WiX使用活动构建配置(请参阅VS工具栏中的组合框)。
我的意思是,如果在那里选择了Debug,那么WiX项目将包含引用项目的调试输出。如果选择Release,则WiX项目将包含发布输出。

从我的角度来看,这种行为是不正确的。 Debug安装程序必须包含调试参考项目的输出。 Release安装程序 - 版本输出。

发布bug here,但现在它关闭,没有任何解释。

任何想法?

尝试加入的MyApplication.Configuration一个变量,并通过以下步骤将其设置为Release

  1. 右键单击Solution Explorer中的项目的引用节点并选择添加引用...
  2. 在添加WiX库引用“对话框,单击”项目“选项卡。
  3. 选择所需的项目并单击添加按钮,然后单击确定关闭对话框。

详情here

+0

这个变量已经被定义,它的值是'Debug' 。 我已经在WiX tracker上发布了一个bug,但是现在它没有任何解释就关闭了。更新我的问题。 – Dennis 2012-08-24 09:39:55

由于我完全按照您经常尝试成功的方式进行操作,因此我怀疑您将解决方案配置与项目配置混淆。 foo的解决方案配置可以使用项目配置bar - 它们只是名称,它们不必匹配。检查配置管理器(BUILD→配置管理器... VS2012),并验证当您的解决方案配置是“发布”时,您的项目配置也是“发布”。

您可以使用$(var.Configuration),它被设置为解决方案配置(调试,发布等):

<File Id="MyApp.exe" KeyPath="yes" Source="..\MyApp\$(var.Configuration)\MyApp.exe" />