web-dev-qa-db-ja.com

Visual Studio:相対アセンブリ参照パス

ソリューションディレクトリ内にあるアセンブリに参照を追加する場合、リポジトリにチェックインおよびチェックアウトするときにプロジェクトで正しく参照されるように、相対的に追加する方法はありますか?

85
theringostarrs

Pavel Minaevの元のコメントを拡張するには-Visual StudioのGUIは、.slnが相対参照のルートであるという前提で相対参照をサポートします。ソリューションC:\myProj\myProj.slnがある場合、C:\myProj\のサブフォルダーに追加した参照は、自動的に相対参照として追加されます。

C:/myReferences/myDLL.dllなどの別のディレクトリに相対参照を追加するには、次の手順を実行します。

  1. ソリューションエクスプローラーでプロジェクトを右クリックし、参照の追加...を選択して、Visual Studio GUIに参照を追加します。
  2. この参照が存在する* .csprojを見つけて、テキストエディターで開きます。
  3. <HintPath>を編集して、等しい

    <HintPath>..\..\myReferences\myDLL.dll</HintPath>

これはC:\myReferences\myDLL.dllを参照するようになりました。

お役に立てれば。

116
CrimsonX

はい、ソリューションにlib /などのディレクトリを作成してから、dllをファイルシステム内のそのディレクトリに追加し、プロジェクトに追加します(Add-> Existing Item-> etc)。次に、プロジェクトに基づいて参照を追加します。

私はこれをsvnおよびcvsで数回行いました。

8
Freddy

VS 2017では、自動です。これだけ Add Reference通常どおり。

Reference Properties絶対パスが表示されますが、.vbproj/.csproj相対が使用されます。

<Reference Include="NETnetworkmanager">
      <HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
      <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
2
Yura

おそらく、これを実現する最も簡単な方法は、アセンブリに参照を追加し、対応するVisual Studioプロジェクトファイル(拡張子.csproj)内の参照のテキスト表現を(手動で)相対パッチすることです。

VS 2005でこれを何回も問題なく行いました。

2
Uwe Honekamp

前述のように、プロジェクトの.csprojファイルを手動で適用します。

また、Visual Studio 2013は、おそらくプロジェクトファイルの移植性を高めるために、参照ヒントパスに相対パスを適用しようとすることに気付きました。

0