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

时间:2010-01-14 16:22:36

标签: visual-studio multiple-projects

我有一个大项目,我用更好的开源替代品替换2个部分。开源库非常大但是它们稳定且不变,因此在我的VS项目中直接包含源代码对我来说似乎毫无意义 - 它更多的是加载,更多的是编译等。我宁愿只构建2个开源项目,在固定版本,然后从主项目中引用它们。

但这给了我一些问题。

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

  2. 如果我想进入其他项目中的代码,调试会更难 - 它不仅仅是单步执行代码 - 或者是它?

  3. 我还没有想到的其他东西......

  4. 因此,当我玩弄想法时,我想我会问你们如何设置它们。

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

    由于

1 个答案:

答案 0 :(得分:4)

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

csproj文件是一个MSBuild脚本,它是XML。如果你向下浏览它,你应该找到一个< ItemGroup>包含一堆< Reference>的元素元素。您可以向其中一个参考元素添加条件,如下所示:

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

Include属性可以包含程序集的完整强名称,对于二进制文件的调试和发布版本,它可能不一定是不同的。在这种情况下,您可以添加&lt; HintPath&gt;元素包含.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文件。