2012-02-06 72 views
4

有沒有辦法暫時禁用構建前期和後期事件?暫時禁用Visual Studio中的構建事件

即建立一個沒有生成事件,此刻我有縮小和幾個其他的東西去上(這些都佔用了一些時間,但總的arent運行至關重要)

,我不總是需要這一點。

回答

8

東西一樣最小化僅事項發佈版本。所以你可以這樣跳過它:

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

還有一些其他的宏你可以使用,點擊編輯按鈕和宏>>按鈕來查看它們。環境變量也可以測試,使用%varname%。但要設置起來要困難得多。

3

檢查您的發佈後的事件設置。在「構建事件」選項卡上,將「運行構建後事件」組合框的值更改爲「構建更新項目輸出時」。僅當輸出程序集更新時纔會執行後構建事件。

OR

使用的MSBuild命令生成解決方案(這是多解的項目有用)。 在PC上創建「DisableBuildEvents.msbuild」文件。 DisableBuildEvents.msbuild內容:

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

注:CustomAfterMicrosoftCommonTargets值應該是全路徑名

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

CustomAfterMicrosoftCommonTargets財產在命令行設置執行的MSBuild。

10

禁用構建事件最簡單的方法是通過空值:

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

甜。由於新添加的構建事件,我的TeamCity構建失敗。將此添加到「命令行參數」字段固定好。 – 2013-04-22 17:21:12

5

我也玩了一點msbuild foo.vcxproj /p:PreBuildEvent= /p:PostBuildEvent=,但對我來說它沒有工作,可能是因爲我使用自定義道具文件。

我發現我的工作是/p:PostBuildEventUseInBuild=false

+0

我有完全相同的情況,'/ p:PostBuildEventUseInBuild = false'也適用於我。謝謝! – sthlm58 2016-04-07 10:03:32

+0

同樣在這裏,'/ p:PostBuildEvent ='不起作用,但'/ p:PostBuildEventUseInBuild = false'沒有。 – Zitrax 2017-10-10 14:17:15