Действительно ли возможно обнаружить при создании в IDE VS?

Я добавил дополнительное после шага сборки так, чтобы я мог интегрировать mspec с teamcity. Однако я не хочу выполнять это, когда я создаю в IDE, поскольку он удлиняет время для создания. Есть ли некоторым образом, я могу обнаружить, создаю ли я из IDE и не выполняю эту определенную цель? Это - то, что я имею до сих пор.

<Target Name="RunSpecs">
    <PropertyGroup>
        <AdditionalSettings>--teamcity</AdditionalSettings>
        <MSpecCommand>..\Lib\mspec\mspec.exe $(AdditionalSettings) "$(TargetDir)$(AssemblyName).dll"</MSpecCommand>
    </PropertyGroup>
    <Message Importance="high" Text="Running Specs with this command: $(MSpecCommand)" />
    <Exec Command="$(MSpecCommand)" IgnoreExitCode="true" />
</Target>
<Target Name="AfterBuild" DependsOnTargets="RunSpecs" />

Легкое решение состоит в том, чтобы добавить другую конфигурацию сборки, но я предпочел бы не делать это.

Также TeamCity вывод быть выведенным к окну вывода является видом раздражения.:)

9
задан Dave 22 February 2010 в 19:23
поделиться

1 ответ

Да, вы можете проверить свойство BuildingInsideVisualStudio .

Итак, в вашем случае вы можете сделать что-то вроде следующего:

<Target Name="RunSpecs" Condition=" '$(BuildingInsideVisualStudio)'!='true' ">
    <PropertyGroup>
        <AdditionalSettings>--teamcity</AdditionalSettings>
        <MSpecCommand>..\Lib\mspec\mspec.exe $(AdditionalSettings) "$(TargetDir)$(AssemblyName).dll"</MSpecCommand>
    </PropertyGroup>
    <Message Importance="high" Text="Running Specs with this command: $(MSpecCommand)" />
    <Exec Command="$(MSpecCommand)" IgnoreExitCode="true" />
</Target>

Обратите внимание на состояние цели. К вашему сведению, обычно я советую не ставить условия для целей , но это хорошее использование для них.

9
ответ дан 4 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: