0

レジストリにREG_SZとして格納されている文字列をパスに挿入するにはどうすればよいですか?私がしようとしているのは、.csprojリファレンスをレジストリの定義済みパスに設定することですが、私が見ているのは、%PATH%env変数がレジストリにどのように格納されているかを調べるときです。ここで私が何をしようとしています何の例です。レジストリに格納されているパスをどのように参照しますか?

「.. \ .. \ .. \」Iは、例えば、[HKEY_CURRENT_USER \ Softwareのパスを挿入したいと思い、ある
<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> 

\ MyCompany \ DefaultVersion \ Folder]をクリックします。これに関する助けがあれば大いに感謝します。

+0

いじりなしで動作する助けることVisual Studioでレジストリ値に格納されたパスを使用して参照先のDLLを解決するようにしましたか? –

+0

はい。私はこれまで、Visual Studioを使用して参照パスを設定する方法の詳細な手順をエンドユーザーに伝えることでこの問題を回避しましたが、クライアントにRebuild Solutionをヒットさせることで構築することができます。 –

+0

ここに更新があります。私はインストーラで[HKCU \ Environment]にレジストリ値を作成して、次回コンピュータを再起動するときに%MxVDefaultPath%経由でエクスプローラでパスを参照できるようにしました。問題は、 ".. \ .. \ .. \"を "%MxVDefaultPath%\"に置き換えると、Visual Studioはこの変数を尊重していないように見えることです(ただし、変数が実際に参照するときに機能することを確認しましたcmdまたはエクスプローラ)。 –

答えて

0

すぐに使用できるビヘイビアを使用すると、Visual Studioで環境変数を参照してHintPathを使用することはできません。

    これはVisual Studioが参照はビルド時にこのMSDN Article

    形成resovles方法で、Visual Studio .NETの は で、次の順序を次の場所を検索 ことにより、アセンブリ参照を解決します

  1. プロジェクトフォルダの1つでアセンブリを探します。これは、 が、既存アイテムの追加メニュー オプションを使用して、 プロジェクトにアセンブリを追加したことを前提としています。プロジェクトフォルダには、ソリューションエクスプローラ によって表示される フォルダが含まれます([すべてのファイルを表示]が の場合を除く)。

  2. ユーザーオプションファイル内の 要素のReferencePath属性にリストされているフォルダを探します。この属性には、 のカンマ区切りのリストを含めることができます。

  3. 内の<HintPath>要素をプロジェクトファイルに使用します。

  4. レジストリ設定で識別される一連のフォルダを調べます。 Add ダイアログボックスの.NETタブに と表示されたアセンブリを含む のものです。詳細については、 [ 参照の追加]ダイアログボックスの[.NET]タブの使用を参照してください。

  5. プロジェクト フォルダの下にあるobjサブフォルダ内のCOM Interopアセンブリを探します。詳細については、 COMオブジェクトの参照を参照してください。

しかし4つ目のオプションは、あなただけのこれらのレジストリキーのいずれかにあなたのパスを追加して、それはちょうどあなたがプロジェクトを開きたい明確にするHintPath

HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders 
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders 
関連する問題