Rob*_*Rob 7 .net c# clr multitargeting
假设我有两个项目,P4和P3,分别针对.net 4.0和3.5.
每个项目还有一个System.Data的引用.在P4的情况下,它将是System.Data v4.0.0.0在P3的情况下,它将是System.Data v2.0.0.0
P4项目也参考了P3.
如果加载并执行P4,它将使用.net 4.0 CLR.在运行时,对System.Data的引用似乎在P4和P3内解析为v4.0.我可以通过使用assemblyBinding重定向覆盖它,但P4和P3都解析为v2.0.
有什么方法可以配置我的应用程序,以便P4使用v4.0和P3使用v2.0?
如果你能控制P3,是的。转到项目的引用部分,找到 System.Data 引用,然后查看其属性窗口(右键单击 -> 属性)。
为“特定版本”属性选择“True”。重新编译、重新部署等。
请注意,如果在尝试加载程序集时计算机上未安装 .NET 2、3 或 3.5,这将导致各种运行时故障。
编辑
我已经尝试过这个,但没有运气。P3 仍然运行 v4.0。您知道此设置是否会对为 P3 生成的程序集产生任何明显的影响吗?例如,无论“特定版本”是否设置为 true,清单都会显示“.ver 2:0:0:0”。
尝试将其添加到您的 app.config 中:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2584 次 |
| 最近记录: |