Answers:
我有一个类似的案例,其中添加了:
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
如果您创建一个NUnit测试项目,则此包含项是由VS2013故意生成的,但是忘记将其标记为测试项目,如Microsoft的以下答案所述:
此行为是故意的。
为了支持第三方测试框架(如NUnit和XUnit),Visual Studio 2012会在解决方案打开时加载测试资源管理器,无论它是否包含测试项目。这给所有用户(其中大多数不使用测试)的启动和解决方案打开方案增加了几秒钟的延迟。
在Visual Studio 2013中,我们对其进行了更改,以便仅在解决方案包含一个或多个测试项目时才加载Test Explorer程序包。以两种不同的方式来标识测试项目。使用项目类型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#。对于其他项目类型的指导,请转到此处
ProjectTypeGuids
但是如果您要进行跨平台开发并使用MonoDevelop,则将无法打开{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
项目:“ MonoDevelop不支持此项目类型”。如果您仅删除测试项目类型GUID,则两个IDE似乎都很高兴。
关于众所周知的/不变的 GUID 的好处是它们非常独特,因此在Google中非常容易搜索。我做了,发现了:
this和this,以及其他有趣的热门歌曲。
看来这实际上是SDK随附的T4 DSL工具中的一个已知错误。幸运的是,通过更改某些注册表项很容易解决。