Nugetのpacagesフォルダは移動可能で、複数のソリューションで共有することができます。pacagesフォルダを移動する方法は次の2つの方法があります。移動した場合はパッケージの再インストールが必要になります。
ソリューションファイル(.sln)の位置を合わせる
Nugetのpacagesフォルダはソリューションファイル(.sln)と同じ階層に作られるため、複数のソリューションファイルを同じ階層においておけば、Nugetのpacagesフォルダは1か所にまとまります。NuGet.configファイル で Nugetのpacagesフォルダの場所を指定する
NuGet.configファイルのrepositoryPathでNugetのpacagesフォルダのパスを指定できます。指定しておけば、そのパスにNugetのpacagesフォルダが作られます。NuGet.config ファイルは、ソリューションファイル(.sln)と同じもしくは、上の階層にあればOKです。(ドライブのルートまで再帰的に検索されるそうです。)NuGet.configファイルの例
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value=".\packages" />
</config>
</configuration>
<configuration>
<config>
<add key="repositoryPath" value=".\packages" />
</config>
</configuration>
注意
複数人で作業している場合、それぞれにNuGet.configを指定するとプロジェクトファイル(csproj )のHintPathなどのパスが人によって変わることになりGitで管理しにくくなります。
パッケージの再インストール
pacagesフォルダの位置を変更しても、リビルドなどでは参照の設定が変わらないため、パッケージを再インストールする必要があります。
パッケージマネージャーコンソールを開いて、次のコマンドを実行します。
Update-Package -Reinstall
このコマンドを実行することで、プロジェクトファイル(csproj )のHintPathが正しいパスに書き換えられ参照設定が正しくなります。
ただし、一部のパッケージはプロジェクトファイル(csproj )にHintPath以外のパス情報を持っている場合があり、それらがエラーになることがあります。Nugetのpacagesフォルダを移動させてビルドができなくなったプロジェクトがあれば、プロジェクトファイル(csproj )で、移動前のpacagesが指定されている箇所がないか検索してみてください。
0 件のコメント:
コメントを投稿