混合模式程序集是针对版本X构建的,如果没有其他配置信息,则无法在运行时的版本Y中加载

pab*_*ams 5 assemblies runtime version sgen crystal-reports

在做了一些代码重构之后,我的VS2010 VB.Net Web应用程序项目停止了编译,出现以下错误:

"混合模式程序集是针对运行时的版本'v1.1.4322'构建的,如果没有其他配置信息,则无法在4.0运行时加载."

在Visual Studio的"文件"列中,错误列表是单词"SGEN",但是当我双击时,该文件不存在("文档无法打开.它已被重命名,删除或移动.")我认为它与序列化有关,但是所需的附加配置信息是什么?我花了几个小时研究错误,每个人都说要将以下内容添加到app.config文件的配置选项卡中:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
Run Code Online (Sandbox Code Playgroud)

但是,我已将此添加到我可以找到或创建的每个配置文件中,到目前为止它没有帮助.

我怀疑部分问题可能是Crystal Reports,其DLL实际上是针对dot net的v1.1.4322构建的.

我应该在哪个配置文件中添加legacyRuntime配置?这甚至是正确的解决方案吗?

pab*_*ams 9

我通过在我的应用程序配置中将"生成序列化程序集"从"自动"更改为"关闭"来编译项目.关于useLegacyV2RuntimeActivationPolicy在互联网上的建议似乎是我的情况的一个红色鲱鱼.

  • 可能取决于您正在使用的Visual Studio版本,但对我来说(VS2010 Pro)它是右击项目 - >命中属性 - >编译 - >高级编译选项... - >生成序列化程序集是一个下拉列表. (4认同)