无法获得“构建前”目标来与 MSBuild 一起使用

问题描述 投票:0回答:1

我有一个简单的 hello world 控制台应用程序,其顶级语句如下:

Console.WriteLine("Hello world");

我想在构建过程之前尝试自动执行目标,因此我按如下方式编辑了 CSPROJ 文件;

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
    
  <Target Name="BeforeBuild" BeforeTargets="Build">
    <Message Text="BEFORE BUILD TARGET" Importance="high" />
  </Target>
</Project>

我尝试了

dotnet build MyProj.csproj
,将详细级别一直提高到
diagnostic
。但是我无法显示消息文本。

我在这里做错了什么?

c# .net msbuild
1个回答
0
投票

您的目标名称是

"BeforeBuild"
:

<Target Name="BeforeBuild" BeforeTargets="Build">

引用微软文档这里

请确保使用与预定义目标不同的名称(例如,此处的自定义构建目标是 CustomAfterBuild,而不是 AfterBuild),因为这些预定义目标会被定义它们的 SDK 导入覆盖。请参阅本文末尾的表格,了解预定义目标的列表。

尝试将目标名称更改为(例如)

"CustomBeforeBuild"
,以避免这种微妙的陷阱。

© www.soinside.com 2019 - 2024. All rights reserved.