"Error MSB4057 missing target pack" 构建 .netstandard nuget 包时

"Error MSB4057 missing target pack" when building .netstandard nuget package

我正在尝试使用 VS2017 RC 创建一个遵循 these instructions 的 .netstandard nuget 包。它构建良好,但是当我尝试使用

创建包时
msbuild /t:pack /p:Configuration=Release

我收到一个错误,目标 pack 在我的解决方案中不可用:

error MSB4057: The target "pack" does not exist in the project.

我不太确定如何处理此消息或应该在哪里修复它。有什么建议吗?

命令 msbuild /t:pack /p:Configuration=Release 指定 MSBuild 应该 运行 构建脚本中的 pack 目标。该错误表明 MSBuild 无法在构建脚本(或其导入之一)中找到该目标。你有没有仔细检查你的先决条件?您要么使用了错误的构建脚本,要么缺少 <import> 标记。

多亏了 MSDN forums 上的回答,我才能够让它工作。

您必须在构建命令中指定 .csproj,这样它就不会尝试使用解决方案文件 (.sln)。

msbuild "C:\Users\Administrator\Documents\visual studio 2017\Projects\AppLogger\AppLogger\AppLogger.csproj" /t:pack /p:Configuration=Release

此外,我还必须从 NuGet 安装 NuGet.Build.Tasks.Pack" 包。

您必须先导入目标,然后才能使用它们。在使用目标之前在项目文件中写入:

  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />