0

私は、NugetパッケージとしてJson.Netを参照するVSプロジェクトを含むgitリポジトリをクローンしました。このリファレンスの形式で表示されます。Visual StudioプロジェクトファイルでNugetヒントパスをオーバーライドすることはできますか?

<HintPath>..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> 

私はD:\Reposに(すべての私の他のgitリポジトリと一緒に)クローン化されたリポジトリを持っています。

ご覧のとおり、私のパッケージに3つ以上のディレクトリがインストールされている可能性はありません。 オーバーライドハードベークパッケージインストール上のプロジェクトファイルに入る相対パスに表示されていない環境変数(NUGET_PACKAGES)またはpackages.configファイルを使用して

この正確な例は、この特定のrepo 3フォルダをファイルシステムに深く埋め込むことで解決できますが、これは問題の解決策ではありません。

これらの作成者指定のHintPathを無視して、ユーザー指定のパスを使用するように指定できますか?

答えて

0

packages.configファイルを使用している場合、NuGetパッケージを追加するときにヒントパスを無効にすることはできません。

ソリューションの横にNuGet.Configファイルを使用して、repositoryPathの設定を使用してパッケージをどこに配置するかを定義します。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <config> 
    <add key="repositoryPath" value="../MyPackages" /> 
    </config> 
</configuration> 

もう1つのオプションは、project.jsonファイルを使用することですが、このファイルはある時点では消えてしまいます。 project.jsonファイルを使用すると、.csprojファイルにヒントパスがまったく格納されていないことを意味します。アセンブリはビルド時に解決されます。

+0

私のリポジトリではないので、そのように変更することはできません。一つは 'repositoryPath'フィールドを持つ設定の自分のローカルコピーをHintPathsを上書きすると思うでしょうが、そうではありません。明らかにそれは便利すぎるでしょう。システム全体がオープンソースのソフトウェアなどと戦うように設計されているようだ。 –

+0

リポジトリ外のディレクトリにNuGet.Configファイルを置くことができます。 NuGetは、NuGet.Configファイルが見つかるまでディレクトリツリーを上書きします。しかし、.csprojファイルを変更できない場合、それらが異なるリポジトリにある場合は、何かを行うことができるかどうかはわかりません。彼らは常に他のパッケージディレクトリを参照します。 –

+0

解決策はありませんか?これは単に一般的なナゲットやVisual Studioソリューションの機能の範囲外です。 –

関連する問題