哪一个是csproj文件中汇编引用的正确方法?

时间:2012-06-19 20:25:17

标签: c#-4.0 csproj

在我的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文件的正确方法?

1 个答案:

答案 0 :(得分:2)

正如你所说:两​​者都很好。

如果您在.csproj文件中使用相对或绝对路径,那么事实上它确实很重要:

  • 当您计划移动.csproj文件时。引用的程序集也会移动,然后转到相对路径,否则采用绝对路径。
  • 如果文件夹结构中存在极端嵌套,则相对路径可能超过260个字符的路径名限制。这是因为完整路径是通过简单地连接项目目录路径和相对路径(包括所有..\)在内部构建的。然后,连接的路径可能会超过上面提到的字符在路径名称限制,而绝对路径则不会。