在 Visual Studio 中使用共享库项目的多个解决方案
Multiple solutions working with shared library project in Visual Studio
我有一个包含多个项目的独立解决方案,包括 class 库和控件库。此解决方案及其所有项目均受 TFS 源代码控制。
我在我开发的所有新项目中都引用了一个或多个这些库的输出。引用目前是二进制的而不是项目引用。
新项目也始终处于源代码控制之下,现在我需要为库添加调试支持。
如果我从他们那里引用库项目,项目文件会被修改并且不再适用于原始库解决方案,因为库和引用的源代码控制提供程序可能不同。
有没有简单的方法来解决这个问题?
没有。
但是,您可以使用一些策略。最简单的(可能,但在某些情况下并非如此)是构建您希望调试的项目,将二进制文件放在托管它们的应用程序之上,然后将调试器附加到 运行ning 应用程序。这可以确保您在调试时拥有正确版本的程序集,但您可能不得不做不需要的事情,例如确保您没有针对特定版本的程序集
这对于正在开发的程序集来说可能是个坏消息。它还需要大量的手工工作,这取决于 您的应用程序 运行 可能需要您 运行 远程调试,处理跨不受信任的网络传输 dll 的问题等等等
您应该将共享的二进制文件连同索引的 PDB 一起打包到 Nuget 包中。 Nuget 专为解决这些问题而设计。
您可以通过 运行 索引工具为您的 PDB 建立索引。 TF Build 可以自动索引您的 PDB。
我有一个包含多个项目的独立解决方案,包括 class 库和控件库。此解决方案及其所有项目均受 TFS 源代码控制。
我在我开发的所有新项目中都引用了一个或多个这些库的输出。引用目前是二进制的而不是项目引用。
新项目也始终处于源代码控制之下,现在我需要为库添加调试支持。
如果我从他们那里引用库项目,项目文件会被修改并且不再适用于原始库解决方案,因为库和引用的源代码控制提供程序可能不同。
有没有简单的方法来解决这个问题?
没有。
但是,您可以使用一些策略。最简单的(可能,但在某些情况下并非如此)是构建您希望调试的项目,将二进制文件放在托管它们的应用程序之上,然后将调试器附加到 运行ning 应用程序。这可以确保您在调试时拥有正确版本的程序集,但您可能不得不做不需要的事情,例如确保您没有针对特定版本的程序集
这对于正在开发的程序集来说可能是个坏消息。它还需要大量的手工工作,这取决于 您的应用程序 运行 可能需要您 运行 远程调试,处理跨不受信任的网络传输 dll 的问题等等等
您应该将共享的二进制文件连同索引的 PDB 一起打包到 Nuget 包中。 Nuget 专为解决这些问题而设计。
您可以通过 运行 索引工具为您的 PDB 建立索引。 TF Build 可以自动索引您的 PDB。