c#项目有可能使用多个.net版本吗?



我自学了编程,我不确定这是否可能。我也不知道我在这里问的问题是否有名字(例如:"你问的问题叫xxxxxx")。我找不到关于这个话题的任何东西(但确实找到了一些升级文章,这不是我想要的,所以请原谅我,如果这听起来像一个NOOB问题对硬核程序员;我是初学者)。

我有一个依赖于。net 2.0的小项目,因为它包含了一些外部库。该软件运行良好,但现在需要添加功能;这些东西在。net 4.0或。4.5下更容易编程。

然而,包含的外部库不是在。net级别,所以现在我想知道:一个项目可以有多个。net版本吗?

我不确定,但也在想也许我只写我的新函数作为一个依赖于。net 4.5的dll,在这个dll中,我在一个不同的项目中编写我的公共函数,然后在我的prj中包括最终的dll,依赖于。net 2.0…我不确定这是不是一个好办法

是的,你可以将。net 2程序集包含到。net 4或。net 4.5项目中(或者任何你愿意的版本)。在。net 2项目中包含。net 4程序集将无法工作。

如果你想在一个基本项目中使用新特性,你需要升级所有依赖它的项目。确保整个树都支持。net 4(例如Office插件,或其他您可能使用的相关软件)。

使用混合模式程序集(同时使用。net和非托管代码的程序集)是一个例外,它对CLR更严格,并且可能由于活动策略(MSDN)而导致问题。

您只能使用一个。net版本,并且该版本是您的主要应用程序需要(或配置)使用的。然而,. net在很大程度上与旧版本向后兼容,并且经常可以在新版本的框架中不加修改地运行旧程序集。

因此,即使你的应用程序可能运行。net 4或4.5,你也可以使用为。net 2编写的程序集(或库)(尽管可能会有一些限制,正如其他人提到的)。这些程序集只是在4.5 CLR下运行(假设它们没有向后兼容性问题),这种情况很少见,但确实会发生)。

但是要记住的关键是,您正在运行的应用程序必须是所有包含的程序集的最高版本。这意味着,如果你有4.5个程序集,你就不能像2.0应用程序那样运行你的应用程序。

听起来你正在寻找并行执行,特别是进程内并行执行:

进程内并行执行

是的,你可以包含。这就是CLS所做的

如果您想在基本项目中使用新特性,则需要升级基于它的所有项目。

最新更新