Sharpsvn和C#问题
-
24-10-2019 - |
题
在尝试将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);
它随着错误而破裂。我已经搜索了此错误,并且找不到找到解决方案的运气。
解决方案
SharpSVN组件是与CLR版本2.0版制造的混合组件。
因此,不能将其加载到CLR 4.0版中。
您需要将项目更改为项目属性中的目标.NET 3.5(或更早)。
由于.NET 2.0,.NET 3.0和.NET 3.5所有使用CLR版本2.0,因此它将在任何这些版本中使用。
其他提示
如果要继续定位.NET 4:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
这将使混合模式组件的加载支持(主要是包含未管理和托管代码的C ++/CLI组件)为较旧版本的框架构建。
正如朱利安(Julien)提到的那样,您需要将兼容性代码添加到项目的app.config或web.config:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
这一切都很好,但是如果您在Visual Studio内的测试跑步者(如MSTest)遇到这个问题,则实际上必须将此更改为Test Runner的配置文件。
我在VS 2012中写了一篇有关此问题的文章:
在Visual Studio 2012中,您需要将启动代码添加到以下文件:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config
不隶属于 StackOverflow