一个.net 3.5 c#项目可以引用.net 4.0程序集并编译它吗? 运行时间呢? 4.0编译/使用3.5运行?.net 4.0迁移
编辑:特别是,我有第三方.net程序集。它有扩展点:我注册我的DLL在app.config中,它会打电话给我(可能通过反射)。我可以在.net 4.0中实现我的dll吗?什么时候选择CLR版本,何时启动主exe文件,或者当某个dll需要某个版本的时候?
一个.net 3.5 c#项目可以引用.net 4.0程序集并编译它吗? 运行时间呢? 4.0编译/使用3.5运行?.net 4.0迁移
编辑:特别是,我有第三方.net程序集。它有扩展点:我注册我的DLL在app.config中,它会打电话给我(可能通过反射)。我可以在.net 4.0中实现我的dll吗?什么时候选择CLR版本,何时启动主exe文件,或者当某个dll需要某个版本的时候?
A .net 3.5应用程序需要在te 4.0框架中重新定位,才能成为.net 4.0应用程序并使用.net 4.0功能。这不应该破坏任何东西(除了在用户的PC上需要.net 4.0),还可以让您开始使用.net 4.0功能。
您可以将.net 4.0应用程序重定向到3.5 iff它不使用任何.net 4.0功能。如果是这样,您需要重写代码的这些位以使用.net 3.5。
针对特定的.net版本是微不足道的 - 它是通过从项目属性的下拉列表中选择版本来完成的。
不,您需要升级到4.0以引用4.0程序集。
谢谢 - 请参阅我的编辑 – 2010-07-08 20:40:01
注意您的特定情况,您可以使用<requiredRuntime>
配置元素使第三方应用程序加载框架的4.0版本。这将导致加载框架的4.0版,因此您的DLL可以使用4.0功能。
此外,.NET 4.0带有一个名为In-Process Side-by-Site的功能。我从来没有看过这个功能,但它可能对你的情况也是有用的......
_'You can retarget a .net 4.0 app down down to 3.5 iff it doesn' t使用任何.net 4.0功能。'这真的意味着'不使用任何不仅仅是编译技巧的功能'。我会因为打电话给他们而陷入困境,但是哦。一个简单的例子是C#中的可选参数。 – Marc 2010-07-08 18:46:17
谢谢 - 请参阅我的编辑 – 2010-07-08 20:40:23
@Yaron:我希望每个程序集应该能够独立“链接”到不同版本的CLR。但是,我无法证实,因为我不知道*答案。为什么不试试看看? – 2010-07-08 22:19:51