在我的MSI安装程序之一中,我将以编程方式更新程序集和项目引用相对路径。我的应用程序文件夹中包含所有引用程序集。
我尝试实现路径相对路径和绝对路径。两者都很好。
相对路径
<Reference Include="log4net">
<HintPath>..\..\..\..\log4net.dll</HintPath>
</Reference>
绝对路径
<Reference Include="log4net">
<HintPath>C:\Program files\Myapplication\log4net.dll</HintPath>
</Reference>
当我从参考装配路径或GAC文件中获取装配参考时,我只看到了绝对路径参考。
C:\Program Files (x86)\Reference Assemblies
<Reference Include="System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\System.Management.Automation.dll</HintPath>
</Reference>
哪一种是将路径更新到.Csproj
文件的正确方法?
答案 0 :(得分:2)
正如你所说:两者都很好。
如果您在.csproj
文件中使用相对或绝对路径,那么事实上它确实很重要:
.csproj
文件时。引用的程序集也会移动,然后转到相对路径,否则采用绝对路径。..\
)在内部构建的。然后,连接的路径可能会超过上面提到的字符在路径名称限制,而绝对路径则不会。