102

添加对位于解决方案目录中的程序集的引用时,是否有任何方法可以相对添加它,以便在签入和签出存储库时在项目中正确引用它?

4

6 回答 6

133

扩展 Pavel Minaev 的原始评论 - Visual Studio 的 GUI 支持相对引用,假设您的 .sln 是相对引用的根。因此,如果您有解决方案C:\myProj\myProj.sln,您在子文件夹中添加的任何引用都会C:\myProj\自动添加为相对引用。

要在单独的目录中添加相对引用,例如C:/myReferences/myDLL.dll,请执行以下操作:

  1. 通过右键单击解决方案资源管理器中的项目并选择添加引用...在 Visual Studio GUI 中添加引用
  2. 找到此引用所在的 *.csproj 并在文本编辑器中打开它
  3. 编辑 <HintPath> 等于

    <HintPath>..\..\myReferences\myDLL.dll</HintPath>

这现在引用C:\myReferences\myDLL.dll.

希望这可以帮助。

于 2009-11-18T15:21:19.270 回答
9

是的,只需在您的解决方案中创建一个目录,如 lib/,然后将您的 dll 添加到文件系统中的该目录并添加到项目中(添加->现有项->等)。然后根据您的项目添加参考。

我在 svn 和 cvs 下做过几次。

于 2009-07-31T04:58:59.473 回答
5

在 VS 2017 中它是自动的。所以就像往常Add Reference一样。

请注意,显示的是Reference Properties绝对路径,但.vbproj/.csproj使用的是相对路径。

<Reference Include="NETnetworkmanager">
      <HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
      <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
于 2018-06-21T09:29:57.677 回答
2

实现这一点的最简单方法可能是简单地添加对程序集的引用,然后(手动)在相应的 Visual Studio 项目文件(扩展名 .csproj)中修补引用的文本表示,使其变得相对。

我在 VS 2005 中做了很多次,没有任何问题。

于 2009-07-31T05:10:33.413 回答
1

我可能不在这里,但似乎答案很明显:查看项目属性中的引用路径。在我们的设置中,我将我们的公共存储库文件夹添加到引用路径 GUI 窗口中,如下所示

VS20xx 中的参考路径

这样我就可以将我的 dll(准备发布)复制到这个文件夹,每个开发人员现在每次从这个文件夹构建时都会获得更新的 DLL。

如果在解决方案中找到 dll,则构建器应优先考虑本地版本而不是已发布的团队版本。

于 2019-11-14T10:10:32.623 回答
0

如前所述,您可以手动编辑项目.csproj文件以手动应用它。

我还注意到 Visual Studio 2013 尝试将相对路径应用于引用提示路径,可能是因为试图使项目文件更便携。

于 2015-07-06T17:41:07.323 回答