98

我正在尝试将 Visual Studio 2010 beta dll 加载到 NUnit GUI 中。我收到一个弹出错误。

此程序集由比当前加载的运行时更新的运行时构建,无法加载。您可能正在尝试使用比当前运行 NUnit 的版本更高版本的 CLR 加载程序集构建。

如何强制可执行文件在 .NET 4 下运行?

4

10 回答 10

132

我已经下载了 NUnit 2.5 源代码并在 VS2010 beta 中打开了 VS2008 解决方案。转换完成后,我打开所有项目并将所有项目的目标框架设置更改为“.NET Framework 4.0”。然后我构建了没有任何错误的解决方案。我现在可以使用 NUnit GUI 应用程序运行为 .NET 4.0 构建的测试。我没有对此构​​建进行详尽的测试,因此可能存在问题,但就我的目的而言,它运行良好。

更新:没有必要重建 NUnit。我发现如果您将以下内容添加到相关的 NUnit 配置文件中,您可以运行为 .NET 4.0 构建的测试 dll。

在 <配置> 添加:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

并在 <runtime> 下添加:

<loadFromRemoteSources enabled="true" />
于 2009-05-31T16:37:31.537 回答
25

随着 .NET 4 的发布,我使用了

<supportedRuntime version="v4.0.30319" />

在 NUnit 2.5.4 exe.config 而不是 requiredRuntime 中,以及如上所示的 loadFromRemoteResources 标记,一切都运行良好。谢谢!

于 2010-04-16T20:44:57.400 回答
17

您不必修改任何文件

只需打开此文件,一切都会正常

C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-x86.exe

于 2011-12-26T23:34:28.493 回答
12

NUnit 2.5.5中,您可以在命令行中指定选项/framework=net-4.0,它与最新 VS2010 版本生成的新程序集兼容。

于 2010-04-27T10:40:59.763 回答
2

提议的解决方案非常适合让 NUnit 运行。不幸的是,当我进入代码覆盖步骤时,NCover 开始给我:

已分析的进程已终止。未建立探查器连接。

我发现的最佳解决方案是仅使用带有 NCover 的“-x86”版本的 NUnit:

NCover.Console.exe nunit-console-x86.exe --附加参数--

现在工作。

于 2010-02-10T20:05:30.697 回答
2

要从 Visual [C# 2010 Express 或任何版本] 中找到您的 .net 4 版本,请转到菜单的帮助项下的 Visual 应用程序的“关于”。它应该在窗口右上角的 Microsoft .NET Framework 行下显示为版本。

于 2011-04-14T19:47:38.660 回答
1

我在运行 NUnit 2.4.8 时遇到了同样的错误消息。由于我有一段时间没有升级,我安装了当前的 NUnit (v2.5.9),发现它现在支持 VS2010 程序集。因此,如果您新遇到此错误,请检查您的 NUnit 版本:截至 2010 年 12 月(左右),您唯一需要做的就是升级 NUnit。

于 2011-01-21T04:23:59.477 回答
1

从 NUnit 2.5.10 开始,您可以在 GUI 运行器中启用 Visual Studio 支持:

工具-> 设置-> IDE 支持

之后,我能够成功附加到 nunit-agent.exe 进程,该进程在 .NET 4.0 应用程序域中运行您的程序集

于 2011-06-03T17:23:27.453 回答
0

如果您在升级到 nunit 2.5.5 后遇到此问题,那么您需要将 nant 升级到对我来说是 .91 alpha 的最新版本。

于 2010-07-22T16:15:09.163 回答
0

发现从 NUnit Application Template开始很有用。它支持 VS C# Express,允许调试测试并包含用于 .NET 4.0 的预编译 NUnit。感谢作者,一键即可准备好新的测试项目。

于 2011-05-26T10:21:52.243 回答