Visual Studio .runsettings, исключая слишком много сборок
Я использую файл.runsettings для управления сборками, которые генерируют результаты покрытия кода.
В следующем разделе моего файла.runsettings я получаю все сборки, включая мои тестовые проекты, некоторые нежелательные сборки TFSBuildExtensions:
<!-- Match assembly file paths: -->
<ModulePaths>
<Include />
<Exclude />
</ModulePaths>
Поэтому я изменил его, чтобы исключить мои тестовые проекты, которые называются MyCompany.MyProject1.Tests.dll.
<!-- Match assembly file paths: -->
<ModulePaths>
<Include />
<Exclude>
<ModulePath>.*Tests.*</ModulePath>
</Exclude>
</ModulePaths>
Однако теперь все мои сборки исключены, и у меня остались только сборки TFSBuildExtensions.
Что я должен указать в разделе исключения, чтобы исключить следующие сборки?
- MyCompany.MyProject1.Tests.dll
- ...
- MyCompany.AnyProjectName.Tests.dll
- TFSBuildExtensions.XXX.dll
2 ответа
ОК, поэтому я обнаружил, что проблема была здесь: /questions/36747100/ispolzovanierunsettings-dlya-isklyucheniya-sborok-iz-pokryitiya-koda/36747126#36747126
Regex ищет путь, а не просто имя модуля, вам нужно.* Перед модулем, чтобы игнорировать его, то есть вы хотите игнорировать его при любом заданном пути к файлу.
Поэтому, когда я изменил его на следующий, он работал нормально:
<ModulePaths>
<Exclude>
<ModulePath>.*tests\.dll$</ModulePath>
<ModulePath>.*tfsbuildextensions\..*\.dll$</ModulePath>
</Exclude>
</ModulePaths>
Это должно делать то, что вы хотите:
<!-- Match assembly file paths: -->
<ModulePaths>
<Include />
<Exclude>
<ModulePath>^.*Tests\.dll$</ModulePath>
<ModulePath>^tfsbuildextensions\..*\.dll$</ModulePath>
</Exclude>
</ModulePaths>