完成一些代码重构后,我的VS2010 VB.Net Web应用程序项目已停止编译,并出现以下错误:
“混合模式程序集是针对运行时的版本'v1.1.4322'构建的,如果没有其他配置信息,则无法在4.0运行时中加载。
在Visual Studio错误列表的"file"列中,单词是“SGEN”,但是当我双击时,该文件不存在(“文档无法打开。它已被重命名,删除或移动。”)我收集到它与序列化有关,但是所需的其他配置信息是什么?我花了几个小时研究错误,每个人都说要在app.config文件的配置选项卡中添加以下内容:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
但是,我已经将此添加到了我可以找到或创建的每个配置文件中,到目前为止,它并没有帮助。
我怀疑问题的一部分可能是Crystal Reports,其DLL确实是根据点网v1.1.4322构建的。
我应该在哪个配置文件中添加legacyRuntime配置?那是正确的解决方案吗?
最佳答案
我通过将应用程序配置中的“生成序列化程序集”从“自动”更改为“关闭”来编译项目。整个互联网上有关useLegacyV2RuntimeActivationPolicy的建议对于我的情况似乎是一团糟。
关于crystal-reports - 混合模式程序集是针对版本X构建的,如果没有其他配置信息,则无法在运行时的版本Y中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772265/