注释
此页面适用于 Visual Studio 2019。 如果使用 Visual Studio 2022,则 .NET Core 和 .NET 5 及更高版本的项目的项目设计器大相径庭。 请参阅“指定生成事件”(C#)。
使用项目设计器的“生成事件”页指定生成配置说明。 还可以指定运行任何生成后事件的条件。 有关详细信息,请参阅如何:指定生成事件(C#)和作方法:指定生成事件(Visual Basic)。
UIElement 列表
配置
此控件在此页中不可编辑。 有关此控件的说明,请参阅生成页、项目设计器 (C#)。
平台
此控件在此页上不可编辑。 有关此控件的说明,请参阅生成页、项目设计器 (C#)。
预生成事件命令行
指定要在生成开始之前执行的任何命令。 若要键入长命令,请单击“ 编辑预生成” 以显示 预生成事件/生成后事件命令行对话框。
注释
如果项目是最新的且未触发构建,则预生成事件不会运行。
生成后事件命令行
指定要在生成结束后执行的任何命令。 若要键入长命令,请单击“ 编辑生成后” 以显示 预生成事件/生成后事件命令行对话框。
注释
call
在运行.bat
文件的所有生成后命令之前添加语句。 例如,call C:\MyFile.bat
或 call C:\MyFile.bat call C:\MyFile2.bat
。
运行生成后事件
指定要运行的生成后事件满足以下条件,如下表所示。
选项 | 结果 |
---|---|
始终 | 无论生成成功,生成后事件都会运行。 |
成功生成时 | 如果生成成功,生成后事件将运行。 因此,即使生成成功,事件也会针对 up-to日期的项目运行。 |
生成更新项目输出时 | 生成后事件仅在编译器的输出文件(.exe 或 .dll )与以前的编译器输出文件不同时运行。 因此,如果项目 up-to-date,则生成后事件不会运行。 |
在项目文件中
在 Visual Studio 的早期版本中,在 IDE 中更改 PreBuildEvent 或 PostBuildEvent 设置时,Visual Studio 会将一个或多个PreBuildEvent
PostBuildEvent
属性添加到项目文件。 例如,如果 IDE 中的 PreBuildEvent 命令行设置如下:
"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"
然后,项目文件设置为:
<PropertyGroup>
<PreBuildEvent>"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)" />
</PropertyGroup>
对于 .NET Core 项目,Visual Studio 会添加一 PreBuild
个名为或 PostBuild
用于 PreBuildEvent 和 PostBuildEvent 设置的 MSBuild 目标。 这些目标使用 MSBuild 识别的 BeforeTargets 和 AfterTargets 属性。 例如,对于前面的示例,Visual Studio 现在生成以下代码:
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command=""$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"" />
</Target>
对于生成后事件,请使用名称 PostBuild
并将属性 AfterTargets
设置为 PostBuildEvent
。
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="echo Output written to $(TargetDir)" />
</Target>
注释
对支持 SDK 样式的项目进行了这些项目文件更改。 如果要手动将项目文件从旧格式迁移到 SDK 样式格式,则应删除 PreBuildEvent
和 PostBuildEvent
属性并将其替换为 PreBuild
和 PostBuild
目标,如前面的代码所示。 若要了解如何判断项目是否为 SDK 样式项目,请参阅 “检查项目格式”。