【问题标题】:How to share cs code among multiple solutions?如何在多个解决方案之间共享 cs 代码?
【发布时间】:2017-10-31 01:19:26
【问题描述】:

我正在使用 VS 2017,并且我有许多实用程序类文件(NetworkLib.cs、ImageLib.cs 等),我发现自己在创建新解决方案时不得不一遍又一遍地复制。

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

我希望能够在多个解决方案文件中以共享库的方式使用它们,而且在调试时,如果我进入某个函数 NetworkLib.Post(),调试器应该进入适当的 CS 文件。此外,如果我从解决方案 1 对 NetworkLib.cs 进行一些更改,所有其他解决方案都应该在重建时使用它。

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

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

【问题讨论】:

  • 这就是 Git 的子模块的用途。 SVN 有一个等价物。
  • 可以在svn中使用外部引用(svn:externals)。
  • 这一切都在我的私人机器上,完全是本地的,我没有使用任何源代码控制。
  • “我考虑过使用 NetworkLib csproj 创建一个独立的实用程序解决方案,然后将项目 csproj 作为现有项目添加到每个解决方案中,但不确定这是否是一个好方法。” -- 我就是这样做的
  • “我没有使用任何源代码管理”

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多