小编典典

csproj 文件中的“服务包含”有什么用?

all

在 C# 解决方案中,我添加了一个现有项目。
之后,Visual Studio 在其他 .csproj 文件中添加了以下条目:

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

这是用来干嘛的?
我可以删除它吗?


阅读 72

收藏
2022-06-29

共1个答案

小编典典

我有一个类似的案例,添加了这个:

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

如果您创建一个 NUnit 测试项目,但忘记将其标记为测试项目,则此包含结果是 VS2013
故意生成的,如Microsoft的此答案中所述:

这种行为是故意的。

为了支持第三方测试框架,如 NUnit 和 XUnit,Visual Studio 2012
在打开的解决方案时加载了测试资源管理器,无论它是否包含测试项目。这增加了所有用户的启动和解决方案打开场景的延迟,其中大多数用户不使用测试。

在 Visual Studio 2013
中,我们对其进行了更改,以便仅在解决方案包含一个或多个测试项目时才加载测试资源管理器包。测试项目以两种不同的方式标识。从内置单元测试项目模板之一创建的项目使用项目类型
GUID 进行标识。其他类型的项目,例如带有 XUnit 或 NUnit
测试的类库项目,在第一次测试发现期间由测试资源管理器识别并与<Service/>项目“标记”。

2022-06-29