VS 2017 - 带有版本信息(资源)的C ++ DLL的MSBuild不起作用(致命错误LNK1158:无法运行'cvtres.exe')

时间:2018-05-15 10:06:02

标签: c++ visual-studio msbuild visual-studio-2017

最新的Visual Studio 2017(从2018年3月15日开始)出现以下问题:

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) - >  (链接目标) - >    链接:致命错误LNK1158:无法运行'cvtres.exe'[C:\ Users \ LazzaAnd \ source \ repos \ Dll1Prova \ Dll1Prova \ Dll1Prova.vcx  PROJ]

此问题似乎与安全问题有关,因为当我将MSBUild作为计算机管理员运行时,所有功能都正常运行(使用“以管理员身份运行”启动命令提示符)。

我在微软社交论坛上提出了一个问题:

https://social.msdn.microsoft.com/Forums/it-IT/8829757b-0320-4765-8853-2a78b7b24485/vs-2017-msbuild-of-c-dll-with-version-information-resource-is-not-functional-fatal-error?forum=msbuild

但是,当我找到解决方法(以管理员身份运行)时,似乎没有进一步的建议/调查。 有没有人有同样的问题和/或解决方案?

1 个答案:

答案 0 :(得分:0)

  

VS 2017 - 带有版本信息(资源)的C ++ DLL的MSBuild不起作用(致命错误LNK1158:无法运行' cvtres.exe')

我也无法重现这个问题。自启动"开发人员命令提示VS2017"当管理员为您工作时,此时,您可以自动运行VS2017作为管理员的开发人员命令提示符作为解决方法。

要完成此操作,请打开Windows资源管理器,导航到以下目录以查找VS2017的开发人员命令提示符快捷方式,右键单击VS2017的“开发人员命令提示符”快捷方式,然后单击“属性”。切换到Shortcut选项卡,单击Advanced,选中Run as administrator,最后单击Ok,然后单击Apply:

enter image description here

enter image description here