Msbuild 在dotnet核心csproj文件中使用构建前和构建后操作

Msbuild 在dotnet核心csproj文件中使用构建前和构建后操作,msbuild,.net-core,Msbuild,.net Core,我是一个.NET内核新手,我正在尝试在我的csproj文件中设置一个预构建操作。根据[1],我们可以使用目标元素指定预构建步骤,如下所示: 但是,MSBuild工具似乎没有拾取此元素。我的完整csproj文件如下所示: netcoreapp1.1 工具书类 [1] -echo是命令shell(cmd.exe)的内置代码,在这种情况下,它将无法工作 如果仅使用例如generateCode,msbuild还将根据您运行的平台查找与该名称匹配的.bat或.sh文件 您可以使用/v:diag运行

我是一个.NET内核新手,我正在尝试在我的csproj文件中设置一个预构建操作。根据[1],我们可以使用目标元素指定预构建步骤,如下所示:


但是,MSBuild工具似乎没有拾取此元素。我的完整csproj文件如下所示:


netcoreapp1.1
工具书类
[1] -

echo
是命令shell(
cmd.exe
)的内置代码,在这种情况下,它将无法工作

如果仅使用例如
generateCode
,msbuild还将根据您运行的平台查找与该名称匹配的
.bat
.sh
文件

您可以使用
/v:diag
运行
dotnet build
命令以获得完整的诊断输出

您还可以通过在目标中添加如下任务来验证您的目标是否实际运行:

<Message Importance="high" Text="Test Message" />

谢谢你,马丁。消息元素和诊断命令帮助我缩小了问题的范围。事实证明BeforeTargets=“Build”在构建步骤之前并没有执行任务,相反,我不得不使用“BeforeBuild”。在我的设置中,生成失败,因为ProjectReference指向不存在的自定义库(我试图使用预生成操作克隆库repo)。我在这个问题中找到了解决方案:。我想我的问题可能是一个重复的问题。如果您使用步骤来
git clone
另一个repo,它可能无论如何都不会工作,因为您需要执行额外的
dotnet restore
调用来设置正确的工作。作为构建前事件这样做可能会带来麻烦
MacBook-Pro:footest martin$ dotnet build
Microsoft (R) Build Engine version 15.3.234.47922 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  footest -> /Users/martin/tmp/footest/bin/Debug/netcoreapp1.1/footest.dll
  meow meow

Build succeeded.
    0 Warning(s)
    0 Error(s)