【问题标题】:"GenerateResource" task CLR2 runtime error“GenerateResource”任务 CLR2 运行时错误
【发布时间】:2015-04-26 20:31:33
【问题描述】:

我的应用不断出现此错误(顺便说一下,我使用的是 VS 2013、VB.NET 和 Windows 8.1):

无法运行“GenerateResource”任务,因为 MSBuild 无法创建或连接到运行时“CLR2”和体系结构“x86”的任务主机。请确保 (1) 请求的运行时和/或架构在机器上可用,以及 (2) 所需的可执行文件“C:\Program Files (x86)\MSBuild\12.0\bin\MSBuildTaskHost.exe”存在并且可以运行。

该应用程序适用于 .NET 3.5(3.5 及更低版本会出现此错误)。 我尝试再次运行该应用程序。有时,它有效;有时,错误会再次出现。

我已经尝试在 Google 上查找答案,结果他们给我的答案是:“您的构建的用户名太长”(他们说 20 个字符或更多字符会导致错误),但事实并非如此。我的用户名只有 5 个字符。无论如何,我认为我的构建的用户名长度与它没有任何关系;没有意义。

有人知道 3.5 及更低版本有什么问题吗?谢谢。

【问题讨论】:

  • 最近几周我也看到了这个错误。它重复得很差。它不是您的应用程序,仅在您构建时发生。自从我上次重启后就再也没有看到它。所以,先重启。
  • @HansPassant 谢谢,它只是担心它在发布后会给我的用户带来问题。
  • 我相信被引用的谷歌搜索是针对这个页面的:​​connect.microsoft.com/VisualStudio/feedback/details/758772/…
  • 只是注意到它在vs2015中没有发生,并且反复尝试重建显示VB中的VB编译器有多快!

标签: vb.net visual-studio-2013 msbuild .net-3.5 runtime-error


【解决方案1】:

这解决了我机器上的问题:

要解决它,请转到您的 csproj 文件并在默认属性组下添加以下行:

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

找到here

【讨论】:

  • 是的,这适用于我们在 Windows 10 + Visual Studio 2012 v11.xxxx 不知道是什么原因。
  • 原因,我相信,与 Visual Studio 无权并行执行其中一些帮助程序有关。我的一半员工突然开始出现这种情况,特别是已经转移到新域控制器的一半,其 IT 向导规定开发人员不能对自己的机器拥有管理员权限。这个答案解决了这个问题。
【解决方案2】:

清理和重建解决方案对我有用。

【讨论】:

  • 我正在尝试下载的解决方案,正如 OP 提到的那样,有时会构建解决方案,有时则不会。正如您所建议的,我清理了解决方案并再次开始构建。谢谢
【解决方案3】:

在每个项目中添加它是一项繁琐的任务。所以可以在环境变量中设置。

单击开始>>右键单击计算机>>属性>>高级系统设置>>单击环境变量按钮打开对话框,然后在系统变量部分下,单击新建...按钮,键入变量名称= DISABLEOUTOFPROCTASKHOST,然后输入变量值 = 1,然后点击确定。

更多here

【讨论】:

    【解决方案4】:

    我尝试添加关注但没有用

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

    这为我解决了这个问题,添加与环境变量相同的变量

    DisableOutOfProcTaskHost=true

    【讨论】:

      【解决方案5】:

      我在尝试构建包含在C:\Program Files\ 下安装的某些软件中的示例解决方案时遇到此错误。 Visual Studio 提示我以提升的权限重新启动(就像在“安全”位置打开解决方案时所做的那样),但是构建失败并显示 OP 的错误消息。

      将解决方案复制到“普通”文件夹(例如 C:\Temp)为我解决了问题。

      【讨论】:

        【解决方案6】:

        我最近尝试在 VS2013 中打开一个旧的 VS2010 vb 项目,但遇到了这个问题。我是这样解决的:

        1. 我去了vb项目的属性页
        2. 我点击了“调试”标签
        3. 在“启用调试器”部分,我看到“(x) 启用 Visual Studio 托管进程”复选框已被选中。
        4. 我尝试取消选中( ) 启用 Visual Studio 托管进程”选项
        5. 我保存了这些更改 (Ctrl+S)
        6. 然后我再次选中(x) 启用 Visual Studio 托管进程”复选框
        7. 我保存了这些更改 (Ctrl+S)

        然后我的下一次重建项目成功了。

        幸运的是,我能够观察到 .vbproj 文件在我的版本控制中是如何变化的,并看到它在其中添加了以下行(以前不存在,尽管最初已经设置了复选框):

        <UseVSHostingProcess>true</UseVSHostingProcess>
        

        【讨论】:

          【解决方案7】:

          本文中的所有答案都不适合我。我必须以管理员身份运行 Visual Studio。希望这对将来的人有所帮助!

          如果您不知道如何在 Windows 上以管理员身份运行程序,请单击此link

          【讨论】:

            【解决方案8】:

            顺便说一下,我正在使用 VS 2013、VB.NET 和 Windows 10、64 位

            只需更改 XML 属性,服务:.NET Framework 4.6 而不是 .Net Framework 2.0(默认)

            对我来说工作得很好。

            【讨论】:

              猜你喜欢
              • 2010-09-06
              • 2016-02-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-12-09
              • 2019-01-10
              相关资源
              最近更新 更多