我正在尝试在 .csproj (vs2017) 中使用目标事件“BeforeBuild”,但它不起作用。有人会知道什么是错的:

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <Target Name="BeforeBuild">
    <Message Text="Test123"></Message>
  </Target>
</Project>

预期结果是输出消息:Test123。

[] 秒

最佳答案



那是因为 csproj 中的 Before/AfterTarget 被 SDK 目标文件 覆盖。



dsplaisted 已为此问题提交了 Microsoft/msbuild#1680。作为解决方法,您可以执行以下操作:

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PreBuildEvent />

  </PropertyGroup>
  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />

  <Target Name="BeforeBuild">
    <Message Text="Test123"></Message>
  </Target>

或者:
  <Target Name="test" BeforeTargets="Build">
    <Message Text="Test123" />
  </Target>

关于c# - 目标 BeforeBuild 在 csproj 中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44643288/

10-13 05:53