Vb.net 共享针对不同.net框架的程序集的代码

Vb.net 共享针对不同.net框架的程序集的代码,vb.net,.net-assembly,Vb.net,.net Assembly,我正在重构和整理我构建的程序集。在此之前,我使用两个完全独立的解决方案构建了这个框架,一个针对.net2框架,另一个针对.net4框架。除了一小部分需要特定于框架的代码外,这两种解决方案中的代码是相同的 因此,除了重构之外,我觉得将程序集的两个“版本”放在同一个解决方案中,并将所有通用代码放在一个解决方案文件夹中,这样做也会更容易维护,并且这些代码会链接到针对每个框架的各个项目 现在我已经谈到了一个部分,该部分要求各个框架的代码略有不同,通过查看各种信息,我知道最好使用#If语句 在我读过的各种

我正在重构和整理我构建的程序集。在此之前,我使用两个完全独立的解决方案构建了这个框架,一个针对.net2框架,另一个针对.net4框架。除了一小部分需要特定于框架的代码外,这两种解决方案中的代码是相同的

因此,除了重构之外,我觉得将程序集的两个“版本”放在同一个解决方案中,并将所有通用代码放在一个解决方案文件夹中,这样做也会更容易维护,并且这些代码会链接到针对每个框架的各个项目

现在我已经谈到了一个部分,该部分要求各个框架的代码略有不同,通过查看各种信息,我知道最好使用#If语句


在我读过的各种帖子中,没有一篇谈论的是关于“如果”后面的内容是否有硬性规定。我尝试添加一个项目名称,但这在编译器中导致了一个错误,即“需要语句结束”,但我可以将DOTNET2放在那里,这似乎是完全可以接受的。这是区分针对这两个.net框架的项目的正确方法吗?

没有“规则”,请自行制定。非常感谢,但这回避了一个显而易见的问题:it如何知道它适用于哪个项目?这是迄今为止我所读到的唯一一件我无法澄清的事情。条件句是一种项目设置。很明显,它适用于什么项目永远不会有任何混淆:)宾果。谢谢你,汉斯,这是我错过的一点。也许这能帮上忙。