回答:
これが追加された同様のケースがありました:
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
このインクルードは、NUnitテストプロジェクトを作成した場合、VS2013によって意図的に生成されたものですが、Microsoftからのこの回答で説明されているように、テストプロジェクトとしてタグを付けることを忘れています。
この動作は意図的なものです。
NUnitやXUnitなどのサードパーティのテストフレームワークをサポートするために、Visual Studio 2012は、テストプロジェクトが含まれているかどうかに関係なく、ソリューションを開いたときにテストエクスプローラーを読み込みました。これにより、ほとんどのユーザーがテストを使用しないすべてのユーザーの起動およびソリューションオープンシナリオに数秒の遅延が追加されました。
Visual Studio 2013では、ソリューションに1つ以上のテストプロジェクトが含まれている場合にのみテストエクスプローラーパッケージが読み込まれるように変更しました。テストプロジェクトは2つの異なる方法で識別されます。組み込みの単体テストプロジェクトテンプレートの1つから作成されたプロジェクトは、プロジェクトタイプGUIDを使用して識別されます。XUnitまたはNUnitテストを含むクラスライブラリプロジェクトなどの他のタイプのプロジェクトは、最初のテストディスカバリ中にテストエクスプローラーによって識別され、
<Service/>
アイテムで「タグ付け」されます。
個人的には、このサービスをプロジェクトファイルに追加するのは好きではありません。適切なソリューションというより、回避策のようなものだと思います。あなたのテストプロジェクトをマーキングするので、テストプロジェクトは、私には、より正確なようで、これが最初にこれを追加することによって達成することができますPropertyGroup
。
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TestProjectType>UnitTest</TestProjectType>
{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
テストプロジェクトを意味し、{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
C#を意味します。他のプロジェクトタイプのGUIDについては、こちらをご覧ください
ProjectTypeGuids
ますが、クロスプラットフォーム開発を行ってMonoDevelopを使用している場合は、{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
「このプロジェクトタイプはMonoDevelopでサポートされていません」というプロジェクトを開くことができません。テストプロジェクトタイプのGUIDを削除するだけで、どちらのIDEも満足しているように見えます。
よく知られている/定数 GUID の良い点は、それらがかなりユニークであり、したがってGoogleで非常に簡単に検索できることです。私が行って見つけたのは、
これとこれと、その他の興味深いヒットです。
これは実際にはSDKに付属するT4 DSLツールの既知のバグのようです。そして幸いにも、いくつかのレジストリキーを変更することで簡単に解決できます。