当添加对位于解决方案目录中的程序集的引用时,是否有任何方法可以相对地添加它,以便在签入和签出存储库时它在项目中被正确引用?
答案 0 :(得分:115)
扩展Pavel Minaev的原始注释 - Visual Studio的GUI支持相对引用,假设您的.sln是相对引用的根。因此,如果您有解决方案C:\myProj\myProj.sln
,则您在C:\myProj\
子文件夹中添加的任何引用都会自动添加为相对引用。
要在单独的目录(例如C:/myReferences/myDLL.dll
)中添加相对引用,请执行以下操作:
编辑< HintPath>等于
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
现在引用C:\myReferences\myDLL.dll
。
希望这会有所帮助。
答案 1 :(得分:8)
是的,只需在您的解决方案中创建一个目录,如lib /,然后将您的dll添加到文件系统中的该目录,并将其添加到项目中(Add-&gt; Existing Item-&gt; etc)。然后根据您的项目添加引用。
我在svn和cvs下已经多次这样做了。
答案 2 :(得分:2)
实现此目的的最简单方法可能是简单地添加对程序集的引用,然后(手动)修补相应Visual Studio项目文件(扩展名.csproj)中引用的文本表示形式,使其变为相对的。
我在VS 2005中已经做了很多次没有任何问题。
答案 3 :(得分:2)
在VS 2017中它是自动的。因此,通常只需Add Reference
。
请注意,在Reference Properties
中显示了绝对路径,但在.vbproj/.csproj
中使用了相对路径。
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
答案 4 :(得分:0)
如前所述,您可以手动编辑项目的.csproj
文件,以便手动应用。
我还注意到Visual Studio 2013尝试将相对路径应用于引用提示路径,这可能是因为尝试使项目文件更具可移植性。
答案 5 :(得分:0)