Wix 在CNDL0150的candle.exe中使用$(env.VCINSTALLDIR)失败
我需要使用一个环境变量 CMD提示符显示以下内容Wix 在CNDL0150的candle.exe中使用$(env.VCINSTALLDIR)失败,wix,environment-variables,visual-studio-2019,Wix,Environment Variables,Visual Studio 2019,我需要使用一个环境变量 CMD提示符显示以下内容 VCINSTALLDIR=C:\ProgramFiles(x86)\Microsoft Visual Studio\2019\Professional\VC\ 现在我试着用这个 <Merge Id='VC_CRT_x86' Language='0' SourceFile='$(env.VCINSTALLDIR)\Redist\MSVC\14.16.27012\MergeModules\Microsoft_VC14
VCINSTALLDIR=C:\ProgramFiles(x86)\Microsoft Visual Studio\2019\Professional\VC\
现在我试着用这个
<Merge Id='VC_CRT_x86'
Language='0'
SourceFile='$(env.VCINSTALLDIR)\Redist\MSVC\14.16.27012\MergeModules\Microsoft_VC141_CRT_x86.msm'
DiskId='1'
/>
使用完整路径是可行的
我从VS-2019环境中编译
编辑:当我使用一个简单的CMD窗口,并从那里使用Candle.exe时。一切正常。环境变量未在VS-2019中传递,这一点值得注意
EDIT2:使用devenv.exe/buildrelease mywxsproject.sln
也可以 cmd.exe:您可能正在通过Visual Studio Developer的命令提示符执行,而不是执行
从常规的cmd.exe
=>
这会产生一个错误的实际环境变量列表
Visual Studio Developer命令提示符:Visual Studio Developer命令提示符
基本上是启动cmd.exe
,并进行了一些开发人员调整。我不知道这一切是如何运作的,但这是本质。我们可能需要传唤来弄清真相
WiX变量:我做了一个冒烟测试,如果环境变量是从环境变量小程序设置的,则应解决$(此处为env.MY\u值)
构造问题:
rundll32.exe sysdm.cpl,EditEnvironmentVariables
按Windows键,轻按R,粘贴上面的内容,然后按Enter键
解决方案:在修复领域,我不确定该建议什么,因为我不知道详细的目的是什么。我怀疑您希望一切都“开箱即用”,但我只想将您需要的所有合并模块复制到您组装设置的发布区域:
大概是这样的:
$(env.vcsinstalldir)\Redist\MSVC\14.16.27012\MergeModules\Microsoft\u VC141\u CRT\u x86.msm
\\Releases\Common\MergeModules\Microsoft\u VC141\u CRT\u x86.msm
命令提示符执行“设置”
,而不是执行“设置”
从常规的cmd.exe
=>
这会产生一个错误的实际环境变量列表
Visual Studio Developer命令提示符:Visual Studio Developer命令提示符基本上是启动cmd.exe
,并进行了一些开发人员调整。我不知道这一切是如何运作的,但这是本质。我们可能需要传唤来弄清真相
WiX变量:我做了一个冒烟测试,如果环境变量是从环境变量小程序设置的,则应解决$(此处为env.MY\u值)
构造问题:
rundll32.exe sysdm.cpl,EditEnvironmentVariables
按Windows键,轻按R,粘贴上面的内容,然后按Enter键
解决方案:在修复领域,我不确定该建议什么,因为我不知道详细的目的是什么。我怀疑您希望一切都“开箱即用”,但我只想将您需要的所有合并模块复制到您组装设置的发布区域:
大概是这样的:
$(env.vcsinstalldir)\Redist\MSVC\14.16.27012\MergeModules\Microsoft\u VC141\u CRT\u x86.msm
\\Releases\Common\MergeModules\Microsoft\u VC141\u CRT\u x86.msm