如何在多个解决方案之间共享cs代码?

时间:2017-10-30 17:02:47

标签: c# visual-studio visual-studio-2017

我正在使用VS 2017,我有许多Utility类文件(NetworkLib.cs,ImageLib.cs等),在创建新解决方案时,我发现自己经常不得不一遍又一遍地重复。

通常情况下,我最终会创建一个专用的单独解决方案NetworkLib.csproj,将这些解压缩到DLL文件中,然后在新解决方案中需要时添加DLL引用,但这对我来说并不理想。

我希望能够在多个解决方案文件的共享库意义上使用它们,但是在调试时如果我逐步进入某个函数NetworkLib.Post(),调试器应该进入相应的CS文件。此外,如果我从Solution1对NetworkLib.cs进行一些更改,则所有其他解决方案都应该在重建时进行更改。

我已经考虑过创建一个带有NetworkLib csproj的独立实用程序解决方案,然后将项目csproj作为现有项目添加到每个解决方案中,但不确定这是否是一个好方法。

我也刚刚阅读了“共享项目”,但是当我创建它时(在它自己的独立解决方案中)我似乎无法将其导入到其他解决方案中。当我查看“共享项目”选项卡时,它只显示“找不到项目”。

2 个答案:

答案 0 :(得分:2)

  

通常,我最终会创建一个专用的单独解决方案,   NetworkLib.csproj,将这些编译成DLL文件,然后添加一个   每当我在新解决方案中需要它时,DLL引用

这就是解决方案。您应该将共享的DLL发布到" shared"文件夹,桌面/服务器/网络/ ...的某个位置,并在您的解决方案中引用这些DLL。如果重建共享库,引用它的每个解决方案都将自动使用新版本。

要调试外部库,您需要与.dll文件一起生成的.pdb文件。在这里查看完整的答案:How to debug external class library projects in visual studio?

答案 1 :(得分:1)

使用“链接项” - .csproj项目对位于文件系统中任何位置的*.cs文件(或其他文件类型)具有软引用,包括源控制工作区外部或甚至是网络共享 - 只要文件存在,您的项目就会构建。明智地使用这种技术,因为很明显的原因很容易打破CI / CD系统。

“如何:将现有项目添加到项目”:https://msdn.microsoft.com/en-us/library/9f4t9t92(v=vs.100).aspx