Что такое "Service Include" в файле csproj?

В решении С# я добавил существующий проект.
После этого Visual Studio добавила следующую запись в другие файлы .csproj:

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

Что это за? Могу ли я удалить его?

Ответ 1

У меня был аналогичный случай, когда он был добавлен:

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

Это включение получается специально для VS2013, если вы создаете тестовый проект NUnit, но забудьте пометить его как тестовый проект, как описано в этом от Microsoft:

Это поведение преднамеренное.

Для поддержки сторонних тестовых фреймворков, таких как NUnit и XUnit, Visual Studio 2012 загрузил Test Explorer на открытое решение, независимо от того, содержит ли он тестовые проекты. Это добавило секунды задержки для запуска и открытия открытых сценариев для всех пользователей, большинство из которых не используют тесты.

В Visual Studio 2013 мы изменили его, чтобы пакет Test Explorer загружался только тогда, когда решение содержит один или несколько тестовых проектов. Проекты тестирования идентифицируются двумя разными способами. Проекты, созданные из одного из встроенных шаблонов проектов unit test, идентифицируются с использованием GUID типа проекта. Другие типы проектов, такие как проект библиотеки классов с тестами XUnit или NUnit, идентифицируются Test Explorer во время первого обнаружения теста и помечены тегом <Service/>.

Ответ 2

Лично мне не нравится, что эта служба добавлена ​​в мои файлы проекта, и я думаю, что это больше похоже на обходное решение, а не на правильное решение. Таким образом, маркировка ваших тестовых проектов в качестве тестовых проектов кажется мне более правильной, и этого можно добиться, добавив это к первому PropertyGroup:

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

{3AC096D0-A1C2-E12C-1390-A8335801FDAB} означает Test Project и {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - С#. Для других типов команд проекта здесь

Ответ 3

Самое приятное в том, что они очень уникальны и поэтому очень удобны для поиска в Google. Что я и сделал, и нашел этот и этот, а также другие интересные хиты, Похоже, что это ошибка в Microsoft SDK.