csproj文件中的“服务包括”是指什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

在C#解决方案中,我添加了一个现有项目。

之后,VisualStudio在其他.csproj文件中添加了以下条目:

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

这是什么?

提问于
用户回答回答于

有过类似的案例,也有这样的情况:

<ItemGroup>
  <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>

如果创建NUnit测试项目,但忘记将其标记为测试项目,则此包含结果是VS 2013生成的。

这种行为是故意的。 为了支持第三方测试框架(如nUnit和xUnit),VisualStudio 2012在打开的解决方案上加载了测试资源管理器,不管它是否包含测试项目。这为所有用户增加了启动和解决方案打开场景的延迟秒,其中大多数用户不使用测试。 在VisualStudio 2013中,我们将其更改为只有当解决方案包含一个或多个测试项目时才加载TestExplorer包。测试项目以两种不同的方式标识。使用项目类型GUID标识从内置单元测试项目模板中创建的项目。其他类型的项目,如带有XUnit或NUnit测试的类库项目,在第一次测试发现期间由TestExplorer标识,并使用<Service/>物品。

用户回答回答于

认为拥有它更像是一种解决办法,而不是一个合适的解决方案。因此,将测试项目标记为试验项目对我来说似乎更正确,这可以通过在第一个中添加这一点来实现。PropertyGroup:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TestProjectType>UnitTest</TestProjectType>

扫码关注云+社区