gpt4 book ai didi

visual-studio-2010 - 如何在 WiX 3.6 中包含依赖于配置的项目输出

转载 作者:行者123 更新时间:2023-12-04 14:16:09 27 4
gpt4 key购买 nike

我想知道,如何在 WiX 安装项目中包含依赖于配置的项目输出?
例如,让我们看看带有一个 .NET 应用程序和一个 Wix 安装项目的 Visual Studio 解决方案。

我在安装项目中添加了对 .NET 应用程序的引用,并在安装源中创建了组件:

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

所以,我希望 WiX 将包含一个 发布 MyApp 版本在其 发布 分别在调试 msi 中设置 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=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 时,这是蜡烛的命令提示符:
%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=Undefined if not building from within 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 工具栏中的组合框)。
我的意思是,如果 Debug在那里选择,WiX 项目将包括引用项目的调试输出。如 Release被选中,WiX 项目将包括发布输出。

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

发布错误 here ,但现在没有任何解释就关闭了。

有任何想法吗?

最佳答案

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

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

关于visual-studio-2010 - 如何在 WiX 3.6 中包含依赖于配置的项目输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com