明らかに理由はありませんが、ソリューションを開くたびに、Visual Studioはslnファイルをチェックアウトします。
以前のバージョンと比較すると、変更はありません。しかし、誰もが解決策をチェックアウトしているので、これは本当にイライラします。
SP2のVS 2008とTFS 2008を使用しています。
このことを防ぐにはどうすればいいですか?または、VSのTFSソース管理プロバイダーの機能/バグですか?
明らかに理由はありませんが、ソリューションを開くたびに、Visual Studioはslnファイルをチェックアウトします。
以前のバージョンと比較すると、変更はありません。しかし、誰もが解決策をチェックアウトしているので、これは本当にイライラします。
SP2のVS 2008とTFS 2008を使用しています。
このことを防ぐにはどうすればいいですか?または、VSのTFSソース管理プロバイダーの機能/バグですか?
回答:
これは、次のものが.slnファイルにある場合に発生します。
GlobalSection(ExtensibilityGlobals) = postSolution
MyGlobalProperty = AnyValue
EndGlobalSection
Enterprise Libraryがこれらの1つを追加したことがわかりました。私はそれを削除し、ソリューションをチェックインし、閉じてから再度開きましたが、自動チェックアウトはありませんでした。
メモリから、[ ツール ]、[ オプション ]メニューを使用して[ ソース管理 ]の[ 環境 ]パネルを選択すると、IDEがバージョン管理とインターフェイスする方法を構成するためのオプションがいくつかあります。
これらのオプションのいくつかは、オープンな行動のチェックアウトを制御すると思います。
念のため、私のように、それを機能させることができず、1つ以上のプロジェクトもチェックアウトされていることに気付いた場合は、単純な解決策を見つけました。チェックアウトし続けるプロジェクトを書き留めます。[ファイル]-[ソース管理]-[ソース管理の変更]に移動し、問題のプロジェクトのバインドを解除します。[OK]、[すべて保存]の順にクリックしてから、ソース管理の変更に戻り、プロジェクトをソリューションにバインドします。うまくいけば、これは他の人のために働くでしょう
そもそも問題を防ぐことはできませんが、Team Foundation Power Toolsの「Undo Unchanged」コマンドを自由に使用すると、変更が行われていない場合、保留中の編集が元に戻されます(驚き)。
チェックアウトを許可してから、両方のファイルを比較します。VSが何かを追加した場合
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
VS2008のソリューションでVSバグが発生しているが、VS2005に移植されていない
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
比較を行う前にファイルを保存していますか?それは少し前に私と一緒に起こり、ファイル間に変更はないと言い続けますが、しばらくして、以前にファイルを保存しておらず、メモリ内のバージョンではなくディスク内のバージョンと比較していたことに気付きました。
Visual Studioでソリューションを開くたびに、.slnまたはプロジェクトファイルが変更される可能性のあるいくつかの操作が実行され、ファイルをチェックアウトするように求められます。これは、開発者のマシンのフォルダー構造に変更があった場合、またはすべてのファイルのバージョンが同じでない場合に発生します。たぶん、誰かがプロジェクトをフォルダに追加し、別の開発者が同じプロジェクトを別の場所に持っているかもしれません。これが発生するもう1つのケースは、いくつかのc ++プロジェクトに解決策がある場合です。何らかの理由で、このc ++プロジェクトの1つに絶対パスを含む.resファイルがありました。このファイルがVSによって自動的に生成されると、開発者のマシンから開発者のマシンへの変更が維持されていました。
私はあなたがあなたの.slnファイルを開いて、それらがあなたのソース管理からどのファイルを取得するかに応じて、いくつかの絶対パスまたはいくつかの開発者マシンには存在しないかもしれない相対パスを探すことを勧めます。