QA@IT
«回答へ戻る

回答を投稿

削除した後にオフラインでリビルドするとまずいことがおきるかもしれません。

ちょっと想像の部分もありますがNuGetを抜きにして一言で説明するなら、それはただの参照アセンブリ置場です。
たとえばGACに未登録のオリジナルのクラスライブラリのアセンブリファイルってローカルのどこかにおいておきますよね?それの置場所です。

プロジェクトのプロパティで参照タブを見てもらえると参照先にそのフォルダが指定されています。
ですのでリビルドするとまずいことになるでしょう。ただしインターネットにつながっていればNuGetがダウンロードしなおしてくるかもしれません。

プロジェクト毎にファイルがないといけないのはシステム上でパッケージが更新や削除されてもソリューションとしては関係なくビルドできないといけないからでしょうね。ソリューションにもpackage設定(packages.config)がいて、バージョンもシステムとは別で管理されています。
([ツール]>[ライブラリ パッケージ マネージャー]>[ソリューションのNuGetパッケージの管理] で管理できます。)

やったことはないですが、もし重複がどうしても問題になるのであれば別ディレクトリにコピーしておいて、プロジェクトの参照設定を変更した上でNuGetのpackages.configから消すかソリューションのパッケージの管理から削除する形になるんでしょうかね。それかハードリンクにしておくか。ひょっとしたらソリューションのパッケージの置場はどこかで設定できるのかもしれません。
いずれにせよ同じ場所に複数のバージョンのアセンブリを置くことはできないのでそのあたりもメンテできないと難しいでしょうね。

ほんとはNuGet用のGACがあればいいのかもしれませんが・・・。

削除した後にオフラインでリビルドするとまずいことがおきるかもしれません。

ちょっと想像の部分もありますがNuGetを抜きにして一言で説明するなら、それはただの参照アセンブリ置場です。
たとえばGACに未登録のオリジナルのクラスライブラリのアセンブリファイルってローカルのどこかにおいておきますよね?それの置場所です。

プロジェクトのプロパティで参照タブを見てもらえると参照先にそのフォルダが指定されています。
ですのでリビルドするとまずいことになるでしょう。ただしインターネットにつながっていればNuGetがダウンロードしなおしてくるかもしれません。

プロジェクト毎にファイルがないといけないのはシステム上でパッケージが更新や削除されてもソリューションとしては関係なくビルドできないといけないからでしょうね。ソリューションにもpackage設定(packages.config)がいて、バージョンもシステムとは別で管理されています。
([ツール]>[ライブラリ パッケージ マネージャー]>[ソリューションのNuGetパッケージの管理] で管理できます。)

やったことはないですが、もし重複がどうしても問題になるのであれば別ディレクトリにコピーしておいて、プロジェクトの参照設定を変更した上でNuGetのpackages.configから消すかソリューションのパッケージの管理から削除する形になるんでしょうかね。それかハードリンクにしておくか。ひょっとしたらソリューションのパッケージの置場はどこかで設定できるのかもしれません。
いずれにせよ同じ場所に複数のバージョンのアセンブリを置くことはできないのでそのあたりもメンテできないと難しいでしょうね。

ほんとはNuGet用のGACがあればいいのかもしれませんが・・・。