Visual Studioがソリューションファイルを「常に」チェックアウトしないようにする方法


152

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

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

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

このことを防ぐにはどうすればいいですか?または、VSのTFSソース管理プロバイダーの機能/バグですか?


ソリューションの一部として単体テストプロジェクトがありますか?
ミッチウィート

1
TFSは同時チェックアウトをサポートしており、.slnファイルに変更がない限り、複数のチェックアウトは問題になりません。
Dirk Vollmar、2009

5
* .slnファイルに実際の変更がある場合、その中のプロジェクトには一意ではなく任意のIDが与えられるため、それらをマージするのは恐ろしい悪夢です。私は同時チェックアウトを大いに支持していますが、ほとんどの* .slnはロックされています。
Richard Berg、

3
これはVS2013で修正されました!!! 私は2012年に同じソリューションを開き、それは.slnをチェックアウトし、2013年に開き、それは明確なままです。
felickz 2013年

2
これは、Visual Studio 2010から最新バージョンのVisual Studio 2015 Update 3までのすべてのバージョンでときどき見られました。ソリューションを開く回数の約半分に発生し、ソリューションの方が頻繁に発生するようです多くのプロジェクトで。
Østergaardとれ

回答:


121

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

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

Enterprise Libraryがこれらの1つを追加したことがわかりました。私はそれを削除し、ソリューションをチェックインし、閉じてから再度開きましたが、自動チェックアウトはありませんでした。


21
Unity NuGetパッケージがVS 2010のソリューションファイルにこれを行ったようです。このセクションを削除し、自動チェックアウトの問題を解決しました。グラハム、ありがとう!
Dan Mork

14
私のお気に入りのテクノロジの2つ(TFSとEntLib)は、なんとペアの最愛の人。

1
このようなセクションがありますが、保持したいデータが含まれているため、削除したくありません。MSはこの問題を「再現不可能」としてクローズしました-愚かですか?connect.microsoft.com/VisualStudio/feedback/details/573538/...
mattanja

Danのコメントは、必要な情報を追加します- すべてのグローバルセクションを削除する必要はありません-unity nugetパッケージによって追加されたように見える部分だけです。
Jordan0Day

2012年も同じ
BlackICE 2013

6

メモリから、[ ツール ]、[ オプション ]メニューを使用して[ ソース管理 ]の[ 環境 ]パネルを選択すると、IDEがバージョン管理とインターフェイスする方法を構成するためのオプションがいくつかあります。

これらのオプションのいくつかは、オープンな行動のチェックアウトを制御すると思います。


1
はい...それらはあなたが自動的にチェックアウトするか、チェックアウトからプロンプトするか、何もしないことを可能にします...しかし、この問題に役立つものは何もありません
CodeClimber

プロンプトが表示されたら、「いいえ、チェックアウトしません」と言うだけでいいのではないですか。
スコットマーロウ

私がチームの唯一の開発者だったらいいのに...残念ながら、すべての開発者が勤勉であるとは思えません
CodeClimber '29

CodeClimber、VSを起動するたびに自動チェックアウトが行われます。自動チェックアウトを停止してオフにすると、問題が解決しません。なに?
2013

1
オプションのリストに「環境」がない場合は、接続を「ローカル」から「サーバー」に変更します(ソース:stackoverflow.com/questions/26843300/…
VenerableAgents 14

5

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



3

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

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

VS2008のソリューションでVSバグが発生しているが、VS2005に移植されていない

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


ソリューションのどのプロジェクトにもこのXMLの行はありません
CodeClimber '29

2

Visual Studioソリューションファイルは、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


リンクNigelのおかげで、すべてのチームでこの問題が発生しています
Baldy 14

1

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


0

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.