使用.NET 4.5安装Visual Studio 2012后,在使用msbuild构建时,我开始遇到以下错误:
“GenerateResource”任务不支持“SdkToolsPath”参数。验证该任务上是否存在该参数,它是一个可设置的公共实例属性。
无法使用其输入参数初始化“GenerateResource”任务。 项目文件标题如下:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
有任何想法在.NET 4.5中做了哪些更改可能会导致abover错误?
答案 0 :(得分:4)
这是C:\ Windows \ Microsoft.Net \ v4.0.30319中的Microsoft.Common.targets文件的问题。安装Visual Studio 2012后,此文件已更改。其中一项更改是在有人将其计算机升级到Windows 8的情况下“修复”GenerateResourceMSBuildRuntime(有关详细信息,请阅读第2271行的精细评论)。我的修复只是注释掉Microsoft.Common.targets文件中的以下行
<GenerateResourceMSBuildRuntime
Condition="'$(GenerateResourceMSBuildRuntime)' == '' and
$([MSBuild]::DoesTaskHostExist(`$(TargetFrameworkAsMSBuildRuntime)`, `$(GenerateResourceMSBuildArchitecture)`))">$(TargetFrameworkAsMSBuildRuntime)</GenerateResourceMSBuildRuntime>
答案 1 :(得分:1)
如果您执行了Bernard建议的变通方法(If your build fails with “MSB6002: The command-line for the “ResGen” task is too long”),那么实际上是一个更好的解决方案。是完全从项目文件中删除变通方法。 Microsoft实际上已经使用Visual Studio 2012 SDK工具修复了对此变通方法的需求。
有关此问题,请参阅discussion on connect。
答案 2 :(得分:0)
我遇到了同样的问题,并发现我在其中一个项目中使用hack来处理大量资源文件(If your build fails with “MSB6002: The command-line for the “ResGen” task is too long”)。
删除任务版本3.5(GenerateResource Task)不支持的所有属性后,我的版本再次正常运行。
答案 3 :(得分:0)
我最近偶然发现了这个问题,解决方法是关闭并重新打开 Visual Studio。我正在 Visual Studio Enterprise 2019 16.10.2 中使用 dotnetcore 2.1 开发一些 azure 功能