【问题标题】:Problems with new build server新构建服务器的问题
【发布时间】:2013-01-21 19:10:07
【问题描述】:

移动构建服务器后,出现以下错误:

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>

我错过了什么?

【问题讨论】:

  • 您是否在构建服务器上安装了 Visual Studio?
  • 我假设这是一台服务器机器。如果是这样,您是否启用了应用程序角色以安装和使用 .net 3.5?
  • @dexter,你找到解决方案了吗?您可以将其发布为答案吗?

标签: visual-studio 64-bit configuration-files msbuild-4.0


【解决方案1】:

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

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

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

项目现在应该可以编译了。

【讨论】:

  • 请参阅connect.microsoft.com/VisualStudio/feedback/details/758772/… 以获得更长的讨论。基本上,这是 .NET 3.5.1 已知问题的解决方法。感谢 Rahul Nikate 提供了这样一个准确的例子。这为我修好了!
  • @MBentley 欢迎并感谢您的链接。
  • 唉,上面的链接已经消失了。
【解决方案2】:

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

【讨论】:

  • 用 VS 2013 构建一个简单的 WinForm,同样的问题。在编译选项卡下切换到 x86,目标 CPU 并构建成功;切换回 AnyCPU 并再次成功构建。
【解决方案3】:

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

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

然后在 System variables 部分下,单击 New... 按钮,键入 变量名=DISABLEOUTOFPROCTASKHOST,并键入变量值=1,

然后点击确定。

这应该会抑制这个错误。

【讨论】:

  • 比编辑所有项目容易得多。谢谢。
【解决方案4】:

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

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

希望对你有帮助。

【讨论】:

    【解决方案5】:

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

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

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

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

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

    【讨论】:

    • 不完全理解“如果您使用的是本机 dll”部分。你能详细说明一下吗?我正面临问题中所述的问题。我觉得你的回答会有所帮助
    【解决方案6】:

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

    【讨论】:

    • 当我点击构建/运行时,我得到了 50% 的时间。这为我解决了。
    猜你喜欢
    • 1970-01-01
    • 2015-11-14
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多