2012-02-06 2 views
4

Есть ли способ временно отключить события до и после сборки?временно отключить события сборки в визуальной студии

т.е. строить без создания событий (которые занимают немного времени, но ARENT всегда важно, чтобы запустить)

на данный момент у меня есть минификация и пару других вещей происходит, и я не всегда нужно.

ответ

8

такие вещи, как минимизация только вопросы для сборки Release. Таким образом, вы можете пропустить это так:

if "$(ConfigurationName)" == "Debug" goto skip 
; stuff here... 
:skip 

Есть некоторые другие макросы, которые можно использовать, нажмите кнопку Edit и кнопку Macro >>, чтобы увидеть их. Можно также проверить переменные среды, используйте% varname%. Но гораздо сложнее установить.

3

Проверьте настройки событий создания сообщения. На вкладке «События сборки» измените значение «Выполнить событие сборки после сборки» на «Когда проект сборки обновляется». События post build будут выполняться только при обновлении сборки сборки.

ИЛИ

Используйте команду MSBuild для построения решения (это полезно для проектов с большим числом решений). Создайте файл «DisableBuildEvents.msbuild» на вашем ПК. DisableBuildEvents.msbuild содержание:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="PostBuildEvent"/> 
    <Target Name="PreBuildEvent" /> 
</Project> 

Execute MsBuild с CustomAfterMicrosoftCommonTargets собственности устанавливается в командной строке:

MSBuild.exe YourSolution.sln /t:Build p:CustomAfterMicrosoftCommonTargets="c:\DisableBuildEvents.msbuild" 

Примечание: значение CustomAfterMicrosoftCommonTargets должно быть полное имя.

10

Самый простой способ отключить сборки событий проходит пустые значения:

msbuild your.sln /p:PreBuildEvent=;PostBuildEvent= 
+0

Sweet. Моя сборка TeamCity не срабатывала из-за недавно добавленных событий сборки. Добавление этого параметра в поле «Параметры командной строки» исправило это. –

5

Я также немного сыграл с msbuild foo.vcxproj /p:PreBuildEvent= /p:PostBuildEvent=, но для меня это не сработало, возможно, потому что я использую пользовательские реквизиты.

Что я нашел для работы, однако, было /p:PostBuildEventUseInBuild=false

+0

У меня была такая же ситуация: '/ p: PostBuildEventUseInBuild = false' работал и для меня. Благодаря! – sthlm58

+0

То же самое здесь, '/ p: PostBuildEvent =' не работает, но '/ p: PostBuildEventUseInBuild = false' сделал. – Zitrax

Смежные вопросы