C# 4.0 在csproj文件中,哪一种方法是正确的装配参考方法?
在我的MSI安装程序中,我正在按语法更新程序集和项目引用相对路径。我的应用程序文件夹中的所有引用程序集 我尝试实现相对路径和绝对路径。两者都很好 相对路径C# 4.0 在csproj文件中,哪一种方法是正确的装配参考方法?,c#-4.0,csproj,C# 4.0,Csproj,在我的MSI安装程序中,我正在按语法更新程序集和项目引用相对路径。我的应用程序文件夹中的所有引用程序集 我尝试实现相对路径和绝对路径。两者都很好 相对路径 <Reference Include="log4net"> <HintPath>..\..\..\..\log4net.dll</HintPath> </Reference> ..\..\..\..\log4net.dll 绝对路径 <Reference Inclu
<Reference Include="log4net">
<HintPath>..\..\..\..\log4net.dll</HintPath>
</Reference>
..\..\..\..\log4net.dll
绝对路径
<Reference Include="log4net">
<HintPath>C:\Program files\Myapplication\log4net.dll</HintPath>
</Reference>
C:\Program files\Myapplication\log4net.dll
当我从引用程序集路径或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>
C:\ProgramFiles(x86)\Reference程序集
假的
C:\Program Files(x86)\Reference Assembly\Microsoft\WindowsPowerShell\v1.0\System.Management.Automation.dll
哪种方法是将路径更新到
.Csproj
文件的正确方法?正如您所说的:两者都可以正常工作
在某些情况下,如果您在.csproj
文件中使用相对路径或绝对路径,则实际上是很重要的:
- 当您计划移动
文件时。引用的程序集是否也会移动,然后选择相对路径,否则选择绝对路径.csproj
- 如果文件夹结构中存在极端嵌套,则相对路径可能超过260个字符的路径名限制。这是因为完整路径是通过简单地连接项目目录路径和相对路径(包括所有
)在内部构建的。连接的路径可能会超过上面提到的路径名限制中的字符,而绝对路径则不会。\
$(ProgramFiles)\Myapplication\log4net.dll
。优点是,如果文件夹名称是本地化的(在非英语版本的Windows中),或者确实包含(x86)
后缀,则它仍然可以工作。但是,我不知道VisualStudio以外的其他工具是否可以在提示路径中使用环境变量。