visual-studio - 设置使用多个外部开源项目的 VS 项目的最佳方法是什么?

标签 visual-studio multiple-projects

我有一个大型项目,我正在用更好的开源替代方案替换其中的两个部分。开源库相当大,但它们很稳定且不变,因此直接将源代码包含在我的 VS 项目中对我来说似乎毫无意义 - 它需要加载更多内容,需要编译更多内容等。我宁愿只单独构建 2 个开源项目,固定版本,然后从主项目中引用它们。

但这给我带来了一些问题。

  1. 我想要库的 DEBUG 和 RELEASE 版本 - VS 无法根据这些定义在引用之间切换。

  2. 如果我想单步执行其他项目中的代码,调试会更困难 - 它不像单步执行代码那么简单 - 是吗?

  3. 还有一些我还没想到的事情...

所以,当我思考想法时,我想我应该问你们如何设置它。

主项目和2个开源项目都位于不同的SVN存储库中。 开源项目我不会每天都得到新的主干,而是修复一个版本。

谢谢

最佳答案

1) 如果您通过编辑 .csproj 文件手动执行此操作,则可以在不同构建配置的引用之间切换。

csproj 文件是一个 XML 格式的 MSBuild 脚本。如果向下浏览,您应该会找到一个包含一堆 元素的 元素。您可以向这些引用元素之一添加条件,如下所示:

<Reference Condition=" '$(Configuration)' == 'Debug' " Include="System.Drawing" />

Include 属性可以包含程序集的完整强名称,对于二进制文件的调试和发布版本来说,该名称不一定有所不同。在这种情况下,您可以添加 元素以包含 .dll 的路径。

<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/

相关文章:

css - 有没有办法在构建 Visual Studio 元素时自动删除未使用的 CSS 规则?

c++ - 来自 dev-c++ 的代码不适用于 visual studio 2013

c# - 在同一解决方案中将用户控件从一个项目复制到另一个项目

json - 使用版本控制在项目之间共享 Json Schema 文件

c# - 是否有等效于 C# 项目的 "Property Manager"(用于通用项目设置)?

python - 装有多个应用程序的 Bottle

c - 具有返回类型 typedef 结构的函数在 VS2015 中不起作用

visual-studio - dotnet CLI 使用什么 nuget 版本/nuget 功能何时进入 dotnet CLI?

c# - 在 Visual Studio 2019 中是否有为每个项目启用 'Fade Unused Usings' 和 'Remove and Sort Usings' 的设置?

c# - 单一解决方案中的多种应用