Share via


專案設計工具、建置事件 (C#)

使用 [專案設計工具] 的 [建置事件] 頁面,以指定組建組態指示。 您也可以指定執行任何建置後事件的條件。 如需詳細資訊,請參閱如何:指定建置事件 (C#)如何:指定建置事件 (Visual Basic)

UIElement 清單

Configuration

無法在此頁面中編輯這個控制項。 如需此控制項的描述,請參閱專案設計工具、建置頁面 (C#)

平台

在這個頁面上無法編輯此控制項。 如需此控制項的描述,請參閱專案設計工具、建置頁面 (C#)

建置前事件命令列

指定要在建置開始前執行的任何命令。 若要鍵入長命令,請按一下 [建置前進行編輯] 顯示建置前事件/建置後事件命令列對話方塊

注意

如果專案是最新狀態,而且未觸發任何建置,則建置前事件不會執行。

建置後事件命令列

指定要在建置結束後執行的任何命令。 若要鍵入長命令,請按一下 [建置後進行編輯] 顯示 [建置前事件/建置後事件命令列] 對話方塊。

注意

在執行 .bat 檔案的所有建置命令前方,加入 call 陳述式。 例如,call C:\MyFile.batcall C:\MyFile.bat call C:\MyFile2.bat

執行建置後事件

指定要執行建置後事件的下列條件,如下表所示。

選項 結果
永遠 不論建置是否成功,都會執行建置後事件。
建置成功時 如果建置成功,則會執行建置後事件。 因此,即使專案是最新狀態,但只要建置成功,就會執行事件。
當組建更新專案輸出時 只有在編譯器的輸出檔 (.exe 或 .dll) 與先前的編譯器輸出檔不同時,才會執行建置後事件。 因此,如果專案是最新狀態,就不會執行建置後事件。

在專案檔中

在舊版 Visual Studio 中,當您在 IDE 中變更 PreBuildEventPostBuildEvent 設定時,Visual Studio 會將 PreBuildEventPostBuildEvent 屬性新增至專案檔。 例如,如果您 IDE 中的 PreBuildEvent 命令列設定如下:

"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"

則專案檔設定為:

<PropertyGroup>
    <PreBuildEvent>"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)" />
</PropertyGroup>

針對 .NET Core 專案,Visual Studio 2019 (和較新更新中的 Visual Studio 2017) 會新增名為 PreBuildPostBuild 的 MSBuild 目標,用於 PreBuildEventPostBuildEvent 設定。 這些目標會使用 MSBuild 辨識的 BeforeTargetsAfterTargets 屬性。 例如,針對上述範例,Visual Studio 現在會產生下列程式碼:

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="&quot;$(ProjectDir)PreBuildEvent.bat&quot; &quot;$(ProjectDir)..\&quot; &quot;$(ProjectDir)&quot; &quot;$(TargetDir)&quot;" />
</Target>

如果是建置後事件,請使用 PostBuild 這個名稱,並將屬性 AfterTargets 設定為 PostBuildEvent

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
   <Exec Command="echo Output written to $(TargetDir)" />
</Target>

注意

這些專案檔已變更以支援 SDK 樣式的專案。 如果您要手動將專案檔從舊格式移轉至 SDK 樣式格式,您應該刪除 PreBuildEventPostBuildEvent 屬性,並將其取代為 PreBuildPostBuild 目標,如上述程式碼所示。 若要了解如何判斷您的專案是否為 SDK 樣式專案,請參閱檢查專案格式

另請參閱