在 Visual Studio 中使用共享库项目的多个解决方案

Multiple solutions working with shared library project in Visual Studio

我有一个包含多个项目的独立解决方案,包括 class 库和控件库。此解决方案及其所有项目均受 TFS 源代码控制。

我在我开发的所有新项目中都引用了一个或多个这些库的输出。引用目前是二进制的而不是项目引用。

新项目也始终处于源代码控制之下,现在我需要为库添加调试支持。

如果我从他们那里引用库项目,项目文件会被修改并且不再适用于原始库解决方案,因为库和引用的源代码控制提供程序可能不同。

有没有简单的方法来解决这个问题?

没有。

但是,您可以使用一些策略。最简单的(可能,但在某些情况下并非如此)是构建您希望调试的项目,将二进制文件放在托管它们的应用程序之上,然后将调试器附加到 运行ning 应用程序。这可以确保您在调试时拥有正确版本的程序集,但您可能不得不做不需要的事情,例如确保您没有针对特定版本的程序集

这对于正在开发的程序集来说可能是个坏消息。它还需要大量的手工工作,这取决于 您的应用程序 运行 可能需要您 运行 远程调试,处理跨不受信任的网络传输 dll 的问题等等等

您应该将共享的二进制文件连同索引的 PDB 一起打包到 Nuget 包中。 Nuget 专为解决这些问题而设计。

您可以通过 运行 索引工具为您的 PDB 建立索引。 TF Build 可以自动索引您的 PDB。