我正在使用 Visual Studio 2019、.NET Core 3.1
我创建了一个新项目并使用模板类库(.NET Core)
我在解决方案资源管理器中右键单击项目,然后单击编辑项目文件
并添加以下目标:
<Target Name="Test" AfterTargets="Build">
<Message Text="This is a test" Importance="high" />
</Target>
当我发布时......它几次达到这个目标,在输出窗格中我看到“这是一个测试”几次。
我希望这个目标在发布而不是构建之后执行。
这适用于 .NET Core Web API 解决方案,在 Publish 事件之前,我正在对已发布结果中包含的 Angular 项目执行ng 构建。
但是在类库中,即使我正在执行实际的发布,也不会执行发布 msbuild 目标。
所以...
<Target Name="Test" AfterTargets="Publish">
<Message Text="This is a test" Importance="high" />
</Target>
此消息永远不会显示在我的输出窗格中。
此类库将发布到私有 NuGet 服务器,我想在发布操作完成后执行nuget 推送。一旦我让 msbuild 目标在正确的时间实际运行,我就可以轻松地执行一个命令来推送到 NuGet 服务器。
我在这里错过了什么吗?在 .NET Core 库解决方案上完成发布操作后,如何执行目标?
编辑: 这提出了另一个问题。当我发布时,我得到这个输出:
1>------ Build started: Project: ClassLibrary1, Configuration: Release Any CPU ------
1>ClassLibrary1 -> C:\Users\11016409\Documents\source\Libraries\NET Core\ClassLibrary1\ClassLibrary1\bin\Release\netcoreapp3.1\ClassLibrary1.dll
1>This is a test
2>------ Publish started: Project: ClassLibrary1, Configuration: Release Any CPU ------
2>ClassLibrary1 -> C:\Users\11016409\Documents\source\Libraries\NET Core\ClassLibrary1\ClassLibrary1\bin\Release\netcoreapp3.1\ClassLibrary1.dll
2>This is a test
2>Successfully created package 'C:\Users\11016409\Documents\source\Libraries\NET Core\ClassLibrary1\ClassLibrary1\bin\Release\netcoreapp3.1\publish\ClassLibrary1.1.0.0.nupkg'.
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
为什么它两次运行构建阶段?