Visual Studio:相对程序集引用路径

the*_*rrs 87 reference relative-path visual-studio-2008

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

Cri*_*onX 117

扩展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.

希望这可以帮助.

  • 我明白这是有用和正确的,但VS gui*严重*没有提供添加相对引用的方法吗? (18认同)
  • 在VS 2015中我默认获得此行为(相对路径) (4认同)
  • 我确信,这增加了一条绝对的道路,直到我出于好奇而跟随您的指示。VS在参考属性中显示了绝对路径,但&lt;HintPath&gt;显示为已相对。原来我缺少文件O_o lolimaderp! (2认同)

Fre*_*ddy 9

是的,只需在解决方案中创建一个目录,如lib /,然后将您的dll添加到文件系统中的该目录,并将其添加到项目中(Add-> Existing Item-> etc).然后根据您的项目添加引用.

我已经在svn和cvs下多次完成了这个.

  • 您不需要将dll添加到项目本身,只需添加对它的引用.最好的办法是将整个'lib'目录添加到源代码控制中.请参阅http://code.google.com/p/projectpilot/source/browse/#svn/trunk作为示例 (5认同)

小智 5

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

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

<Reference Include="NETnetworkmanager">
      <HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
      <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
Run Code Online (Sandbox Code Playgroud)