首页 > 解决方案 > .NET MSBuild Targets AfterTargets=使用 dotnet build 打包

问题描述

更新:

似乎添加dotnet build -v d又名将详细程度设置为详细信息(显然)揭示了有关此过程的更多细节

原来的:

参考:https ://docs.microsoft.com/en-us/nuget/reference/msbuild-targets

我正在使用dotnet build,我的 csproj 看起来像:

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

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <PackageOutputPath>..\packages\</PackageOutputPath>
    <AssemblyVersion>0.1.0</AssemblyVersion>    
  </PropertyGroup>

  <Target Name="CopyPackage" AfterTargets="Pack">
      <Copy
        SourceFiles="$(OutputPath)..\$(PackageId).$(PackageVersion).nupkg"
        DestinationFolder="%USERPROFILE%\.nuget\packages"
      />
  </Target>
  <Target Name="AfterPackMessage" AfterTargets="Pack">
    <Message Text="Copied $(OutputPath)..\$(PackageId).$(PackageVersion).nupkg TO %USERPROFILE%\.nuget\packages" />  
  </Target>
</Project>

我只看到这个输出

C:\code\MySolution.net\MyProject.Core (feature-mediator-http)
λ dotnet build
Microsoft (R) Build Engine version 15.8.169+g1ccb72aefa for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 70.34 ms for C:\code\MySolution.net\MyProject.Core\MyProject.Core.csproj.
  MyProject.Core -> C:\code\MySolution.net\MyProject.Core\bin\Debug\netstandard2.0\MyProject.Core.dll
  Successfully created package 'C:\code\MySolution.net\packages\MyProject.Core.1.0.0.nupkg'.

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

Time Elapsed 00:00:03.68

这里有两个问题:

1)那些Targets 似乎没有被执行

2)AssemblyVersion似乎没有得到应用

dotnet pack或者nuget pack似乎没有什么不同

标签: c#.netmsbuild.net-coremsbuild-task

解决方案


在这种情况下更好地使用 Importance="High":

<Message Importance="High" Text="your Message"/>

推荐阅读