TFS (2013) にフォルダーを無視させようとしていますpackages
。NuGet を使用しているのでソース管理は絶対にしたくありません。NuGet は素晴らしいです!
クローキングを試してみましたが (うまくいかないようです)、.tfignore
ファイルの追加も試しましたが、何も無視されませんでした。TFS チームは、多くの Subversion クライアントのように、フォルダーまたはファイルを永久に無視するオプションを追加しないのはなぜでしょうか?
ベストアンサー1
問題は次の通りです。NuGet は、絶対に実行すべきではないソース管理関連の作業を実行しようとしているため (Microsoft さん、これはよくありません)、NuGetとTFS の両方にパッケージを無視するように指示する必要があります。そのため、2 つのことを行う必要があります。
.tfignore
まず、ソリューション フォルダーにという名前のファイルを追加します(s
の後にがないことに注意してくださいtf
)。その内容は次のようになります。
\packages
これは、TFS にパッケージ フォルダーを無視するように指示します。これで、ファイルも無視されると思うrepositories.config
でしょう。しかし、そうはなりません。なぜでしょうか。誰にもわかりません。Microsoft のやり方は奇妙で神秘的です。実際、これは以下で概説する NuGet の一部だと思いますが、将来これが修正され、repositories.config
VS にファイルを再生成させるのではなく、ファイルを保持したい場合は、次のコードを使用できます。
\packages
!\packages\repositories.config
さて、これで、私たちの.tfignore
ファイルのおかげで、TFS はパッケージを無視するようになりました。すべて順調ですよね?違います。NuGet がソース管理をいじって、保留中の変更にパッケージを追加しているからです。それでは、NuGet にそれをやめる様に指示しましょう。
.nuget
ソリューション フォルダーのルートにというフォルダーを作成します。 1次に、 というファイルを作成しNuGet.config
、この新しいフォルダー2に配置します。その内容は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
これで、パッケージはソース管理から除外されるようになりました。NuGet.config
および.tfignore
ファイルが失われないように、ソース管理に追加することを忘れないでください。
編集:問題が発生している場合は、パッケージ フォルダーを削除し、その変更をチェックインしてから、上記の手順を実行してください。
また、編集: Nuget の新しいバージョンではこの問題は発生しないようです。したがって、VS/TFS 2017 に切り替えると、上記の手順を実行しなくてもこの問題は解消される可能性があります。
1 . ソース管理エクスプローラーを使用してフォルダーを追加します。ソリューションを右クリック -> フォルダーの追加 -> .nuget
2 . VS 2013 を使用してこれを理解したとき、NuGet.config は .nuget フォルダーに配置する必要があることがわかりました。ソリューション フォルダーのルートに NuGet.config ファイルが既にある場合でも (たとえば、会社に社内 NuGet フィードがあるため)。ただし、コメントの中には、VS 2015 のソリューション ルートで問題なく動作するというものもあります。個人的には、TFS を git モードで使用するように切り替えたため、テストできません。また、カスタム フィードがある場合は、カスタム フィードと nuget.org の両方が Nuget.config ファイルのキーとして含まれていることを確認してください。そうしないと、TFS がランダムにパッケージを復元できないと判断することがあります。