8

After installing Visual Studio 2012 with .NET 4.5 I started to get the following errors while building using msbuild:

  • error MSB4064:

The "SdkToolsPath" parameter is not supported by the "GenerateResource" task. Verify the parameter exists on the task, and it is a settable public instance property.

  • error MSB4063:

The "GenerateResource" task could not be initialized with its input parameters. Project file header is as follows:

    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

Any ideas what changes have been made in .NET 4.5 that could cause the abover errors?

4

4 回答 4

5

这是 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>
于 2012-09-26T06:31:53.463 回答
1

如果您执行了 Bernard 建议的解决方法,实际上是一个更好的解决方案,即(如果您的构建失败并显示“MSB6002:“ResGen”任务的命令行太长”)。是从您的项目文件中完全删除解决方法。Microsoft 实际上已经通过 Visual Studio 2012 SDK 工具解决了对这种变通办法的需求。

请参阅有关此问题的连接讨论。

于 2012-09-28T02:18:35.833 回答
0

我遇到了同样的问题,发现我在其中一个项目中使用 hack 来处理大量资源文件(如果您的构建失败并显示“MSB6002:“ResGen”任务的命令行太长” </a>)。

删除任务( GenerateResource Task )版本 3.5 不支持的所有属性后,我的构建再次工作。

于 2012-09-20T07:24:29.680 回答
0

我最近偶然发现了这个问题,解决了关闭并重新打开视觉工作室的问题。我在 Visual Studio Enterprise 2019 16.10.2 中使用 dotnetcore 2.1 开发一些 azure 功能

于 2021-06-22T15:11:57.943 回答