2010-07-08 160 views
0

一个.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需要某个版本的时候?

回答

0

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版本是微不足道的 - 它是通过从项目属性的下拉列表中选择版本来完成的。

+0

_'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

+0

谢谢 - 请参阅我的编辑 – 2010-07-08 20:40:23

+0

@Yaron:我希望每个程序集应该能够独立“链接”到不同版本的CLR。但是,我无法证实,因为我不知道*答案。为什么不试试看看? – 2010-07-08 22:19:51

5

不,您需要升级到4.0以引用4.0程序集。

+0

谢谢 - 请参阅我的编辑 – 2010-07-08 20:40:01

0

注意您的特定情况,您可以使用<requiredRuntime>配置元素使第三方应用程序加载框架的4.0版本。这将导致加载框架的4.0版,因此您的DLL可以使用4.0功能。

此外,.NET 4.0带有一个名为In-Process Side-by-Site的功能。我从来没有看过这个功能,但它可能对你的情况也是有用的......