我自学编码,我不确定这是否可行。
我也不知道我在这里要求的是什么名称(例如:“你问的是什么叫xxxxxx”)。我找不到关于这个主题的任何内容(但确实找到了一些升级文章,这不是我想要的,所以请原谅我,如果这听起来像是对核心编码员的NOOB问题;我是初学者)。
我有一个依赖.NET 2.0的小项目,因为包含了一些外部库。该软件运行良好,但现在它需要增加功能;在.NET 4.0或4.5下更容易编程的东西。
但是,包含外部库的内容不在.NET级别,所以现在我想知道:一个项目可以有多个.NET版本吗?
我不确定但也在思考也许我只是将我的新函数编写为依赖于.NET 4.5的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所做的
如果要在基础项目中使用新功能,则需要升级基于它的所有项目。