2017-08-24 11 views
0

たとえば、私がリポジトリをプルするときにasp.net mvcプロジェクトで、いくつかの参照がありません。TFSとgit、不明のレフェンス

手動でもう一度追加する必要があります。小規模なプロジェクトでは問題はありませんが、巨大なリポジトリでは大きな問題と時間が紛れて発生します。同じ問題がgitにもあります。私はリポジトリを引っ張るときにすべてが明確でなければなりません。

この問題の解決方法はありますか?

+0

Nuget Restoreはそれらをプルしていませんか? – Shyju

+0

私はソースコントロールパネルに行きます。プロジェクトを右クリックし、「最新バージョンを取得」をクリックします。パッケージマネージャコンソールで、プルコマンドを書いていますか? –

+0

参照がnugetを介して追加されたと仮定します(packages.configファイルがあります)。解決策と "復元ナゲットパッケージ"。 – Shyju

答えて

1

"ベストプラクティス"という観点から言えば、ソースコントロールには、プロジェクトが依存するライブラリが含まれていてはなりません。その代わりに、依存関係を取得するための指示(プロジェクト定義ファイル内の参照など)が含まれている必要があります。

どのようにシームレスに動作するかは、ツールによって異なります。 Visual Studio開発環境では、通常NuGetを使用しています。残念ながら、私の経験ではNuGetに参照を解決してほしいと告げる必要があります。対照的に、Maven依存関係管理を使用しているプロジェクト(.NETでは.NetよりもJavaでよく見られる)の場合、依存関係の解決はビルドライフサイクルのデフォルト部分であるため、チェックアウトしてビルドするだけです)

ベストを完全に実装するには私が言及しているプラ​​クティスは、必ずしも自明ではない。たとえば、独自のNuGetパッケージをホストする必要があるかもしれません。それに従うことにはメリットがありますが、誰もが決定するわけではありません。

とにかく、私はそれを推奨しませんが、尋ねられたように質問に答えるための完全性のために、ここに別の方法があります。 Visual Studio、Team Explorer、TFVCについて話しているようです。

可能ソースコントロールに参照されたライブラリを埋め込むことができます。通常、これらのlibsが作業ツリーに存在するディレクトリはソースコントロールによって無視されるので、「すべてをソースコントロールに追加する」というデフォルトの試みがそれらを継承する可能性があります。ソリューションエクスプローラの特定のライブラリに移動し、特にそれらのファイルだけを追加すると言うと、「ファイルは無視されます。追加してください」などのメッセージが表示されます。そして、もしあなたが「はい」と言うなら、それはそうです。

これはなぜgitでも起こります...まあ、gitに対処するために同じツール(ビジュアルスタジオ/チームエクスプローラ)を使用していると仮定しますが、デフォルトでは同じ無視ルールを設定します。それは私が実際に使っていないツールの組み合わせなので、それ以上のことは何も言えません。

NuGetとソースコントロール組み込みライブラリが混在するプロジェクトがあります.NuGetを使用すると、(依存関係が解決する必要があることを伝えるための追加のステップがあっても)週間。

+0

有益な答えをありがとう。それはlibsのソース管理を無視していることをお勧めします。 –

関連する問題