如何引用存储在注册表中的路径?

时间:2011-02-01 15:27:58

标签: windows visual-studio-2008 reference registry environment-variables

如何将注册表中存储为REG_SZ的字符串插入路径?我想要做的是设置.csproj引用我们注册表中的预定义路径,但是当我搜索所有我看到的是%PATH%env变量如何存储在注册表中。这是我想要做的一个例子:

<Reference Include="Interop.SienaASAP2, Version=1.3.0.0, Culture=neutral, PublicKeyToken=89a52a4f35bb97a3, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\Bin\Interop.SienaASAP2.dll</HintPath>
</Reference>

如果“.. \ .. \ .. \”,我想在[HKEY_CURRENT_USER \ Software \ MyCompany \ DefaultVersion \ Folder]中插入路径。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用开箱即用的行为,您无法通过引用环境变量让Visual Studio使用HintPath。

这是Visual Studio从MSDN Article

中重新引用引用的方式
  

在构建时,Visual Studio .NET   解析程序集引用   搜索以下位置   以下顺序:

     
      
  1. 在其中一个项目文件夹中查找程序集。这假定你   已将程序集添加到项目中   使用“添加现有项”菜单   选项。项目文件夹包括任何   Solution Explorer显示的文件夹   (显示所有文件时除外)   效果)。

  2.   
  3. 查看在的ReferencePath属性中列出的文件夹    项目中的元素   用户选项文件。这个属性可以   包含逗号分隔的列表   文件夹。

  4.   
  5. 使用<HintPath>元素   项目文件。

  6.   
  7. 查看由注册表设置标识的一组文件夹。这些是   显示包含程序集的那些   在添加引用的.NET选项卡上   对话框。有关详细信息,请参阅   使用Add的.NET选项卡   参考对话框。

  8.   
  9. 在项目下方的obj子文件夹中查找COM Interop程序集   夹。有关详细信息,请参阅   引用COM对象。

  10.   

然而,第四个选项可以帮助您只是将路径添加到这些注册表项之一,然后它将工作而不会弄乱HintPath

HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders