当尝试向我的C#项目添加SharpSVN时,使用与SharpSVN相关的调用进行编译时会出现以下错误:
未处理的FileLoadException混合模式程序集是针对运行时的版本'v2.0.50727‘构建的,如果没有额外的配置信息,则无法在4.0运行时中加载。
我所做的是添加来自下载的SharpSVN压缩文件的引用,并添加
using SharpSvn;当我编译它时,它工作得很好,但当我添加:
string targetPath = "https://bobl/svn/ConsoleApplication1";
SvnTarget target;
SvnTarget.TryParse(targetPath, out target);它会因为这个错误而中断。我已经搜索了这个错误,但没有找到解决方案。
发布于 2010-06-09 01:42:22
SharpSVN程序集是针对CLR2.0版生成的混合程序集。
因此,它不能在CLR 4.0版本中加载。
您需要在项目属性中将项目更改为目标.Net 3.5 (或更早版本)。
由于CLR2.0、.Net 3.0和.Net 3.5都使用CLR2.0版本,因此它可以在这些版本中的任何一个中工作。
发布于 2010-06-09 01:46:04
如果您想继续瞄准.NET 4,请将此代码添加到您的app.config中:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>这将支持加载为旧版本框架构建的混合模式程序集(主要是包含非托管代码和托管代码的C++/CLI程序集)。
发布于 2012-09-13 12:20:44
正如朱利安提到的,您需要将兼容性代码添加到项目的app.config或web.config中:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>这一切都很好,但如果您在Visual Studio中使用测试运行器(如MSTest)遇到此问题,则实际上必须对测试运行器的配置文件进行此更改。
我在VS 2012中写了一篇关于这个问题的帖子:
http://www.diaryofaninja.com/blog/2012/09/13/net-20-mixed-mode-assemblies-in-visual-studio-net-45-test-projects
在Visual Studio 2012中,您需要将启动代码添加到以下文件中:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.confighttps://stackoverflow.com/questions/2999791
复制相似问题