c++ - VS 2017 - 带有版本信息(资源)的 C++ DLL 的 MSBuild 不起作用(致命错误 LNK1158:无法运行“cvtres.exe”)
问题描述
我对最新的 Visual Studio 2017 有以下问题(从 2018 年 3 月 15/20 日开始):
1) 为 C++ DLL(和相关解决方案)创建一个 Visual Studio 项目,例如 dll1Prova
2)添加带有版本信息的资源文件(扩展名为“.rc”的文件)
3) 保存所有文件并编译。编译很好,一切似乎都可以正常工作
4)然后使用 MSBuild,我尝试使用以下命令(来自命令提示符)构建解决方案:
设置 VisualStudioVersion=15.0 设置 VCTargetsPath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe" dll1Prova.sln /nologo /p:PlatformToolset=v141;Configuration=Debug /v:detailed
我在日志末尾收到以下错误:
"C:\Users\LazzaAnd\source\repos\Dll1Prova\dll1Prova.sln" (默认目标) (1) -> "C:\Users\LazzaAnd\source\repos\Dll1Prova\Dll1Prova\Dll1Prova.vcxproj" (默认目标) (2) -> (链接目标) -> LINK : 致命错误 LNK1158: 无法运行 'cvtres.exe' [C:\Users\LazzaAnd\source\repos\Dll1Prova\Dll1Prova\Dll1Prova.vcx proj]
该问题似乎与安全问题有关,因为当我以机器管理员身份运行 MSBUild 时,一切正常(使用“以管理员身份运行”启动命令提示符)。
我在微软社交论坛上提出了一个问题:
但是,当我找到解决方法(以管理员身份运行)时,似乎没有进一步的建议/调查。有没有人有同样的问题和/或一些解决方案?
解决方案
推荐阅读
- c# - DataGridView properties are disable in child form
- c# - 在 Linux Docker 中查询 Asp.net Core/Kestrel 中的布尔属性的 Firestore
- amazon-web-services - 在 AWS Lambda 上的 Flask 中运行时,APscheduler 作业未触发
- bash - 在哪里可以找到自动完成脚本中经常使用的 _get_comp_words_by_ref 函数的文档?
- python - 为什么我的 apply pandas 函数将每个值都变成了 None 值?
- javascript - 为什么 'setAttribute' 函数在 javascript 中不起作用?
- python - 无法打印值:打印 mmol/L 而不是 mg/dL。使用:mmol/L = (mg/dL) / 18. 提示用户转换的 Python 代码
- android - 打开xml资源并绘制
- node.js - Windows PowerShell 不会从 Node.js 控制台记录 Date 对象
- ios - 可选的@ViewBuilder 闭包