【问题标题】:SharpSVN and C# ProblemSharpSVN 和 C# 问题
【发布时间】:2011-03-01 07:09:02
【问题描述】:

尝试将 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);

它因该错误而中断。我已经搜索了这个错误,但没有找到解决方案。

【问题讨论】:

    标签: c# sharpsvn fileloadexception


    【解决方案1】:

    如果您想继续以 .NET 4 为目标,请将其添加到您的 app.config:

    <configuration>
      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
      </startup>
    </configuration>
    

    这将启用为旧版框架构建的混合模式程序集(主要是包含非托管和托管代码的 C++/CLI 程序集)的加载支持。

    【讨论】:

      【解决方案2】:

      SharpSVN 程序集是针对 CLR 2.0 版构建的混合程序集。
      因此,在 CLR 4.0 版本中无法加载。

      您需要在项目属性中将项目更改为面向 .Net 3.5(或更早版本)。
      由于 .Net 2.0、.Net 3.0 和 .Net 3.5 都使用 CLR 2.0 版,因此它可以在任何这些版本中运行。

      【讨论】:

      • 或者获取使用 .NET 4.0 构建的 SharpSVN 版本。
      • 成功了,谢谢。使用旧版本的 .Net 是否不安全?
      • @Sam F,没有 CLR 更改,这就是原因!
      • 定位 .Net 3.5 没有任何问题。 (除非您将无法使用 .Net 4.0 的新类)
      • 或应用实际错误消息中记录的配置更改。
      【解决方案3】:

      正如 Julien 所说,您需要将兼容性代码添加到项目的 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.config
      

      【讨论】:

        猜你喜欢
        • 2012-06-23
        • 1970-01-01
        • 1970-01-01
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-07
        相关资源
        最近更新 更多