【发布时间】:2017-07-30 06:11:37
【问题描述】:
当一个解决方案中的一些项目引用另一个解决方案中另一个项目的程序集时,最好的策略是什么。
- Solution 1
-- Proj1
-- Proj2
- Solution 2
- OtherProj 1
- Solution 3
- FooProj1
- FooProj2
例如,如果 OtherProj、FooProj1 和 FooProj2 使用 Proj1 或 Proj2 程序集。
现在我必须构建例如 Proj1 并手动将该程序集复制/粘贴到解决方案 2 和解决方案 3 中的解决方案文件夹中。 我不能直接引用,因为这将使用本地路径,如果我通过源代码控制 (TFS) 签入,我的同事会收到我的本地路径(这就是为什么我们在解决方案文件夹中复制/粘贴,以便路径始终是相对的)。
我们考虑的是添加一个构建后事件并将程序集复制到服务器 \myserver\assemblies\relaase\Proj1.dll 上的共享文件夹,然后在我们的解决方案/项目中引用这些文件。
这是一个好策略吗,因为它也适用于源代码控制,或者还有其他策略可以工作吗?
(在 Visual Studio 中存在共享项目之类的东西,但我认为这更多是针对单个解决方案但多个平台而不是共享)
【问题讨论】:
-
一旦你的代码库变得足够大,它会让单个 SLN 文件变得难以管理。此时,您需要编写和维护一个 MSBUILD “.proj” 文件,以便以正确的顺序构建所有项目。如果您这样做,您的项目可以从它们构建的地方引用这些 DLL。您不需要使用绝对文件路径进行引用 - 您应该使用相对路径(这是创建对另一个程序集的引用时的默认设置,因此您不需要在此处执行任何特殊操作)。
标签: c# .net visual-studio-2015 tfs