1

我正在使用 C# 构建 Enterprise Architect 加载项。我必须与 SVN 存储库交互。我使用 VS2010 和 SharpSVN 作为库来与 SVN 存储库进行交互。当我将其更改为 .NET 3.5 时,我的加载项工作正常。但现在我不得不询问另一个插件,而另一个插件只与 4.0 兼容。

但是当我将我的加载项代码更改为 .NET 4.0 时,它会给出著名的错误

“混合模式程序集是针对运行时版本‘v2.0.50727’构建的,无法在 4.0 运行时加载,需要一些配置等”

我在这里阅读了有关该问题的不同主题,建议添加 app.config 文件。带有标签

<Configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
  <NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</Configuration>

同样喜欢从不同的帖子中标记这个。我已经尝试了所有人,但问题仍然存在。我已经检查了VS2010会自动在Debug文件夹中自动生成文件名的配置文件。

谁能建议我解决方案?例如,我的加载项名称是 MyAddIn,因此VS2010生成带有上述标签的 MyAddIn.dll 和 MyAddIn.dll.config。

但问题仍然存在。我正在使用 Windows 7 64 位。

任何帮助将不胜感激。

4

1 回答 1

3

*.dll.config 中的设置是无用的,这就是为什么你不能得到你想要的。由于您的 dll 由 Enterprise Architect 加载,您必须修改其 *.app.config 文件以包含此类设置。通常,这是不可能的,因为您的 dll 只是一个加载项。

一种解决方法是执行完全迁移到 .NET 4,它不仅针对 .NET 4 编译您的 dll,而且针对 .NET 4 编译其所有依赖项。

于 2012-11-05T07:58:39.750 回答