我需要使用环境变量。
CMD提示符显示以下内容
VCINSTALLDIR=C:Program Files (x86)Microsoft Visual Studio2019ProfessionalVC
现在我尝试使用它
<Merge Id='VC_CRT_x86'
Language='0'
SourceFile='$(env.VCINSTALLDIR)RedistMSVC14.16.27012MergeModulesMicrosoft_VC141_CRT_x86.msm'
DiskId='1'
/>
但我明白了
error CNDL0150: Undefined preprocessor variable '$(env.VCINSTALLDIR)'.
使用完整路径有效。
我从VS-2019环境中编译。
编辑:当我使用一个简单的CMD窗口并使用蜡烛.exe从那里。一切正常。环境变量不会在VS-2019中传递。
编辑2:使用devenv.exe /build release mywxsproject.sln
也有效!
更新 :首先是关于环境变量和正在运行的进程问题的几个链接:
- 更改正在运行的进程的环境变量?
- 是否有命令可以从 Windows 中的命令提示符刷新环境变量?
cmd.exe
:您可能是从Visual Studio Developer Command Prompt
执行"set"
,而不是从常规cmd.exe
执行"set"
,=>
这会产生实际环境变量的错误列表。
Visual Studio Developer Command Prompt
:Visual Studio Developer Command Prompt
本质上是一个批处理文件,它通过许多开发人员调整启动cmd.exe
。我不知道这一切是如何运作的,但这就是本质。我们可能需要召唤Mr. Heath Stewart
才能弄清楚这一点?
WiX
变量:我做了一个冒烟测试,如果环境变量是从环境变量小程序设置的,$(env.MY_VALUE_HERE)
构造应该解决:
rundll32.exe sysdm.cpl,EditEnvironmentVariables
按Windows键,点击R,粘贴上述内容并按Enter键。
解决方案: 在修复领域,我不确定该建议什么,因为我不知道详细的目的是什么。我怀疑您希望所有内容都"开箱即用",但我只是将您需要的所有合并模块复制到您组装设置的发布区域:
像这样:
$(env.VCINSTALLDIR)RedistMSVC14.16.27012MergeModulesMicrosoft_VC141_CRT_x86.msm
\ReleasesCommonMergeModulesMicrosoft_VC141_CRT_x86.msm