0

如何在註冊表中將作爲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 \文件夾]。任何幫助,將不勝感激。

+0

只是搞亂工作,以澄清你想開一個項目並讓Visual-Studio使用存儲在註冊表值中的路徑解析引用的dll? – 2011-02-01 16:09:54

回答

0

使用開箱即用的行爲,您不能讓Visual Studio通過引用環境變量來使用HintPath。

這是Visual Studio中如何resovles引用構成本MSDN Article

在構建時,Visual Studio .NET中 通過 解析程序集引用搜索在 以下位置順序如下:

  1. 在其中一個項目文件夾中查找程序集。這假定您 已通過使用添加現有項目菜單 選項將程序集添加到項目 。項目文件夾包括由解決方案資源管理器 顯示的任何 文件夾(除非顯示所有文件在 效果中)。

  2. 查看項目 用戶選項文件中 元素的ReferencePath屬性中列出的文件夾。該屬性可以包含 文件夾的逗號分隔列表 。

  3. 在 項目文件中使用<HintPath>元素。

  4. 查找由註冊表設置標識的一組文件夾。這些是在「添加引用 」對話框的「.NET」選項卡上包含顯示爲 的程序集的 。有關更多詳細信息,請參閱 使用「添加 引用」對話框的.NET選項卡。

  5. 在項目 文件夾下的obj子文件夾中查找COM Interop程序集。有關更多詳細信息,請參閱 引用COM對象。

但是這第四個選項可以幫助你只需要添加你的路到這些註冊表項之一,然後它會不會與HintPath

HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders 
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders 
相關問題