当尝试将SharpSVN添加到我的C#项目时,使用SharpSVN相关调用进行编译会给我这个错误:
FileLoadException未处理 混合模式程序集是根据运行时的版本“v2.0.50727”构建的,如果没有其他配置信息,则无法在4.0运行时加载。
我所做的是从下载的SharpSVN zip文件中添加引用并添加
using SharpSvn;
当我编译它时工作正常,但是当我添加:
string targetPath = "https://bobl/svn/ConsoleApplication1";
SvnTarget target;
SvnTarget.TryParse(targetPath, out target);
它打破了那个错误。我已经搜索了这个错误,并且没有找到解决方案的运气。
答案 0 :(得分:30)
如果要继续定位.NET 4,请将其添加到app.config中
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
这将启用为旧版本框架构建的混合模式程序集(主要是包含非托管代码和托管代码的C ++ / CLI程序集)的加载支持。
答案 1 :(得分:6)
SharpSVN组件是针对CLR 2.0版本构建的混合组件 因此,它无法在CLR 4.0版中加载。
您需要将项目更改为项目属性中的.Net 3.5(或更早版本) 由于.Net 2.0,.Net 3.0和.Net 3.5都使用CLR的2.0版本,因此它可以在任何版本中使用。
答案 2 :(得分:1)
正如Julien所说,您需要将兼容性代码添加到项目的app.config或web.config中:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
这一切都很好,但如果您在Visual Studio中遇到测试运行器(如MSTest)的问题,您实际上必须对测试运行器的配置文件进行此更改。
我在VS 2012中写了一篇关于这个问题的帖子:
在Visual Studio 2012中,您需要将启动代码添加到以下文件中:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config