1. ホーム
  2. tfs

[解決済み] TFS に packages フォルダを無視させる

2022-03-16 17:41:29

質問

TFS (2013)で、私の packages フォルダーを作成しました。NuGetを使用していて素晴らしいので、ソース管理されることを熱く望まない。

クローキングを試してみましたが(うまくいかないようです)。 .tfignore ファイルは何も無視されません。なぜTFSチームは、多くのSubversionクライアントのように、フォルダやファイルを永久に無視するオプションを追加しないのでしょうか?

解決方法は?

ここからが本題です。私たちは、NuGetの両方に NuGetは絶対にやってはいけないソース管理関連のことをやろうとするので、TFSはパッケージを無視するようにします(悪い形式です、Microsoft!)。というわけで、2つのことをしなければなりません。

まず .tfignore をソリューションフォルダに追加します。 s の後に tf ). その内容は、以下のようになります。

\packages

これで、TFSはpackagesフォルダを無視するようになりました。さて、あなたは を考える を無視することになります。 repositories.config ファイルを作成します。しかし、そうならない。なぜだろう?Microsoftのやり方は奇妙で謎めいています。実は、これは以下で説明するNuGetの一部だと思うのですが、もし将来的にそれが修正されて repositories.config ファイルをVSに再生成させる代わりに、これを使うことができるはずです。

\packages
!\packages\repositories.config

OK、では、この .tfignore ファイルでは、TFSはあなたのパッケージを無視しています。すべて順調でしょう? WRONG なぜなら、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 ファイルをソースコントロールに登録することで、紛失することはありません。

EDITです。 問題がある場合は、packagesフォルダを削除し、その変更にチェックインしてから、上記の手順を実行するとよいでしょう。

他にも編集しています。 Nugetの新しいバージョンでは発生しないようです。ですから、もしあなたがVS/TFS 2017に切り替えたら、この問題は上記のフープを飛び越えることなくクリアされるかもしれません。

<サブ 1 . ソースコントロールエクスプローラーを使用してフォルダを追加します; ソリューションを右クリック->フォルダを追加->.nuget
<サブ 2 . VS 2013を使ってこれを把握したところ、NuGet.configは.nugetフォルダに入れなければならないことがわかりました。たとえ、ソリューションフォルダのルートにすでにNuGet.configファイルがあったとしてもです(例えば、あなたの会社には社内のnugetフィードがあるため)。ただし、コメントでは、VS 2015ではソリューションルートで問題なく動作するとの指摘もあります。個人的には、TFSをgitモードで使うように切り替えたので、テストはできませんが。さらに、カスタムフィードを使用している場合は、Nuget.configファイルのキーとしてカスタムフィードとnuget.orgの両方があることを確認してください。そうしないと、TFSがランダムにパッケージを復元できないことを決定してしまうことがあります。