11

移动我的构建服务器后,我收到以下错误:

C:\Windows\Microsoft.NET\Framework64\v3.5\Microsoft.Common.targets (1682): Could not run the "GenerateResource" task because MSBuild could not create or connect to a task host with runtime "CLR2" and architecture "x64". Please ensure that (1) the requested runtime and/or architecture are available on the machine, and (2) that the required executable "MSBuildTaskHost.exe" exists and can be run.

我的配置是这样说的:

<ConfigurationToBuild Include="Release|Any CPU">
    <FlavorToBuild>Release</FlavorToBuild>
    <PlatformToBuild>Any CPU</PlatformToBuild>
 </ConfigurationToBuild>

我错过了什么?

4

6 回答 6

13

要解决此问题,请转到您的.csproj file并使用记事本打开。

在默认属性组下添加以下行:

<PropertyGroup>
      <DisableOutOfProcTaskHost>true</DisableOutOfProcTaskHost>
</PropertyGroup>

项目现在应该编译。

于 2015-03-30T07:15:03.627 回答
8

就我而言,我在尝试在 32 位 Windows 7 机器上构建解决方案时收到了该错误消息。为我解决错误的方法是右键单击 VS 中的项目,选择属性,然后转到构建选项卡。在这里,我将“平台目标”从“任何 CPU”更改为“x86”。高温高压

于 2014-08-20T21:19:07.163 回答
4

另一种方法是执行以下操作

点击开始->>右键计算机->>属性->>高级系统设置->>点击环境变量按钮打开对话框,

然后在 System variables 部分下,单击 New... 按钮,键入 Variable name = DISABLEOUTOFPROCTASKHOST,然后键入 Variable value = 1,

然后单击确定。

这应该抑制这个错误。

于 2013-11-20T07:29:33.393 回答
2

您需要为您正在使用的 .NET 版本安装 .NET SDK。这是 .NET 3.5 的链接 .net 3.5 SDK 在哪里? 这是 4.0 的链接 http://www.microsoft.com/en-us/download/details.aspx?id=8279

安装 Visual Studio 也会安装正确的 SDK,但对您来说可能不是一个好的选择。

我希望这会有所帮助。

于 2013-02-14T00:01:15.113 回答
2

核心问题是 64 位可执行文件无法加载 32 位 dll,反之亦然。

“自动”的意思是。NET 程序集将在运行时在平台之间切换,具体取决于当前运行的机器上的平台。

因此,使用“自动”编译的 .NET 程序集加载 32 位 dll 是一个等待发生的问题,这就是这个错误的全部内容。

要更正它,如果您不使用任何本机 dll,请转到每个托管项目的项目属性,并将“目标 CPU”设置为与所有可用平台当前选择的“平台”相同。

如果您使用的是本机 dll,则必须定义 2 个构建配置,一个用于 32 位,一个用于 64 位,链接(参考)正确版本的 dll 并根据目标计算机平台进行安装。

于 2015-03-20T10:05:38.383 回答
1

我通过以管理员身份打开 VS2010 解决了这个问题。

于 2015-07-24T15:50:30.373 回答