web-dev-qa-db-ja.com

.netstandard nugetパッケージをビルドするときの「エラーMSB4057不足しているターゲットパック」

VS2017 RCを使用して これらの手順 に従って.netstandard nugetパッケージを作成しようとしています。それはうまくビルドしますが、私が使用してパッケージを作成しようとすると

msbuild /t:pack /p:Configuration=Release

ターゲットpackが私のソリューションで利用できないというエラーが表示されます。

エラーMSB4057:ターゲット「パック」はプロジェクトに存在しません。

このメッセージをどうするか、どこで修正する必要があるのか​​、よくわかりません。助言がありますか?

10
Thomas

MSDNフォーラム での回答のおかげで、それを機能させることができました。

ソリューションファイル(.sln)を使用しないように、ビルドコマンドで.csprojを指定する必要があります。

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

さらに、NuGetからNuGet.Build.Tasks.Pack "パッケージをインストールする必要がありました。

11
Thomas

コマンドmsbuild /t:pack /p:Configuration=Releaseは、MSBuildがビルドスクリプト内でpackターゲットを実行する必要があることを指定しています。このエラーは、MSBuildがビルドスクリプト(またはそのインポートの1つ)内でそのターゲットを検出できないことを示しています。前提条件を再確認しましたか?間違ったビルドスクリプトを使用しているか、<import>タグがありません。

1
Matt Ruwe

ターゲットを使用する前にインポートする必要があります。ターゲットを使用する前にプロジェクトファイルに次のように書き込みます。

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