我有一个大型项目,我正在用更好的开源替代方案替换其中的两个部分。开源库相当大,但它们很稳定且不变,因此直接将源代码包含在我的 VS 项目中对我来说似乎毫无意义 - 它需要加载更多内容,需要编译更多内容等。我宁愿只单独构建 2 个开源项目,固定版本,然后从主项目中引用它们。
但这给我带来了一些问题。
我想要库的 DEBUG 和 RELEASE 版本 - VS 无法根据这些定义在引用之间切换。
如果我想单步执行其他项目中的代码,调试会更困难 - 它不像单步执行代码那么简单 - 是吗?
还有一些我还没想到的事情...
所以,当我思考想法时,我想我应该问你们如何设置它。
主项目和2个开源项目都位于不同的SVN存储库中。 开源项目我不会每天都得到新的主干,而是修复一个版本。
谢谢
最佳答案
1) 如果您通过编辑 .csproj 文件手动执行此操作,则可以在不同构建配置的引用之间切换。
csproj 文件是一个 XML 格式的 MSBuild 脚本。如果向下浏览,您应该会找到一个包含一堆
<Reference Condition=" '$(Configuration)' == 'Debug' " Include="System.Drawing" />
Include 属性可以包含程序集的完整强名称,对于二进制文件的调试和发布版本来说,该名称不一定有所不同。在这种情况下,您可以添加
<Reference Include="assembly strong name">
<HintPath>c:\LibraryStuff\Debug\Library.dll</HintPath>
</Reference>
您的提示路径也可以是相对的:
<HintPath>..\..\LibraryStuff\Debug\Library.dll</HintPath>
[免责声明:虽然我从来没有真正用引用文献做过这件事,但我不能保证不会出现问题。我很快对其进行了测试,它似乎工作正常,尽管无论您选择哪种构建配置,Visual Studio 都会显示这两个引用(尽管它只构建匹配配置类型的引用)。如果第二个名称匹配,它还会在第二个上放置一个警告图标,但编译似乎工作正常。]
如果确实遇到问题,您可以尝试仅使用两个不同 HintPath 节点的一个引用,并将条件放在提示路径上。
2) 如果您将 .pdbs 和源代码都放在正确的位置并且可访问,您应该能够通过单步执行代码直接调试到库中,即使您仅引用 .dll 文件。
关于visual-studio - 设置使用多个外部开源项目的 VS 项目的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065630/