ソリューションディレクトリ内にあるアセンブリへの参照を追加する場合、それを相対的に追加する方法はありますか?リポジトリにチェックインおよびチェックアウトすると、プロジェクトで正しく参照されますか?
ソリューションディレクトリ内にあるアセンブリへの参照を追加する場合、それを相対的に追加する方法はありますか?リポジトリにチェックインおよびチェックアウトすると、プロジェクトで正しく参照されますか?
回答:
Pavel Minaevの元のコメントを拡張するには-Visual StudioのGUIは、.slnが相対参照のルートであることを前提として、相対参照をサポートしています。したがって、ソリューションがある場合C:\myProj\myProj.sln
、サブフォルダに追加した参照はC:\myProj\
、相対参照として自動的に追加されます。
などの別のディレクトリに相対参照を追加するC:/myReferences/myDLL.dll
には、次の手順を実行します。
<HintPath>を次と等しくなるように編集します
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
これはを参照しC:\myReferences\myDLL.dll
ます。
お役に立てれば。
はい、lib /のようなソリューションにディレクトリを作成し、ファイルシステムのそのディレクトリにdllを追加して、プロジェクトに追加します(追加->既存のアイテム-> etc)。次に、プロジェクトに基づいて参照を追加します。
私はこれをsvnとcvsの下で数回行っています。
VS 2017では自動です。だからAdd Reference
いつものように。
Reference Properties
絶対パスで表示.vbproj/.csproj
されていますが、相対パスが使用されていることに注意してください。
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
おそらく、これを実現する最も簡単な方法は、アセンブリに参照を追加してから、対応するVisual Studioプロジェクトファイル(拡張子.csproj)の参照のテキスト表現に(手動で)パッチを適用して、相対になるようにすることです。
私は何回も問題なくVS 2005でこれを何度も行ってきました。
私はここから外れているかもしれませんが、答えは非常に明白であるようです:プロジェクトプロパティの参照パスを見てください。私たちのセットアップでは、次のように、共通リポジトリフォルダーを参照パスGUIウィンドウに追加しました
そうすれば、dllを(発行の準備ができて)このフォルダーにコピーでき、このフォルダーからビルドするたびに、すべての開発者が更新されたDLLを取得できます。
DLLがソリューションで見つかった場合、ビルダーは公開されたチームバージョンよりもローカルバージョンを優先する必要があります。