web-dev-qa-db-ja.com

Visual Studioがソリューションファイルを「常に」チェックアウトするのを停止する方法は?

明らかに理由はありませんが、ソリューションを開くたびに、Visual Studioはslnファイルをチェックアウトします。

以前のバージョンと比較しても変更はありません。しかし、誰もがソリューションをチェックアウトしているので、これは本当にイライラさせられます。

VS 2008とTFS 2008の両方のSP2を使用しています。

このことをどのように止めることができるかについてのアイデアはありますか?または、VSのTFSソース管理プロバイダーの機能/バグですか?

150
CodeClimber

これは、次が.slnファイルにある場合に発生します。

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

エンタープライズライブラリがこれらのいずれかを追加したことがわかりました。私はそれを削除し、ソリューションをチェックインし、閉じてから再度開きましたが、自動チェックアウトはしませんでした。

120
Graham Clark

メモリから、ツール、オプションメニューを使用してソース管理、環境パネルを選択すると、IDEバージョン管理とのインターフェース。

これらのオプションのいくつかはopen on checkoutの振る舞いを制御すると思います。

6
jussij

念のため、私のように、あなたはそれを動作させることができず、1つ以上のプロジェクトもチェックアウトされることがわかります、私は簡単な解決策を見つけました。チェックアウトし続けるプロジェクトをメモします。 [ファイル]-[ソース管理]-[ソース管理の変更]に移動し、問題のプロジェクトのバインドを解除します。 [OK]をクリックし、[すべて保存]をクリックして、[ソース管理の変更]に戻り、プロジェクトをソリューションにバインドします。うまくいけば、これは他の人のために働くでしょう

5
user408720

チェックアウトを許可してから、両方のファイルを比較します。 VSが次のようなものを追加した場合

<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />

vS2008のソリューションでVSバグが発生していますが、VS2005に移植されていません

詳細については、 このリンク を確認してください。

3
Luis Filipe

そもそも問題を防ぐことはできませんが、 Team Foundation Power Tools "Undo Unchanged"コマンドを自由に使用すると、変更が行われていない場合、保留中の編集が取り消されます。

3
Dave Roberts

Visual Studio Solutionファイルは、Microsoft Enterprise Libraryを使用してソリューションのプロジェクトの1つ以上でサイレントにチェックアウトされています-これは、さまざまなアプリケーションブロックの構成管理を可能にするEnterprise Library Configuration Utilityと関係があると思います-- http://msdn.Microsoft.com/en-us/library/ff649479.aspx

このMicrosoftフィードバックの投稿を参照してください: http://connect.Microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open

2
Nigel Belham

これは、ソリューション内にロードされているプロジェクトシステムの1つの機能/バグです。さまざまなタイプのプロジェクト(C#、VB、C++、Webサイト、Webアプリ、単体テスト、silverlight ...)がなくなるまで削除してみてください。それがあなたの答えです。

1
Richard Berg

比較する前にファイルを保存していますか?それはしばらく前に私と一緒に起こり、ファイル間に変更はないと言い続けていますが、しばらくすると、以前にファイルを保存しておらず、メモリ内のバージョンではなくディスク内のバージョンと比較していたことに気付きました。

Visual Studioでソリューションを開くたびに、.slnファイルまたはプロジェクトファイルが変更される可能性のある操作が実行され、ファイルをチェックアウトするように求められます。開発者のマシンのフォルダー構造に変更がある場合、またはすべてのファイルの同じバージョンがない場合に発生します。誰かがフォルダにプロジェクトを追加し、別の開発者が別の場所に同じプロジェクトを持っている可能性があります。これが発生する別のケースは、いくつかのc ++プロジェクトでソリューションがある場合です。何らかの理由で、このc ++プロジェクトの1つに絶対パスを含む.resファイルがありました。このファイルがVSによって自動的に生成されると、開発者のマシンから開発者のマシンに変更が加えられます。

.slnファイルを開き、ソース管理から取得するファイルに応じて、開発者のマシンには存在しない絶対パスまたは相対パスを探すことをお勧めします。

0
Carlos