この問題について他の言及があったことは知っています。しかし、VSのあるバージョンから別のバージョンにアップグレードしませんでした。私は現在VS 2013を使用しています。プロジェクトは正常にビルドされ、過去に正常に展開されたことさえあります。これは真新しいアプリです。したがって、それは別のプロジェクトから継承されたものではありませんでした。どこから探し始めますか?ここに何を投稿できますか。 Web API 2サイトです。 VS2013内でpublishコマンドを使用しています。
以下の行を.csprojファイルに追加すると、同じエラーが解決するようです。
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
この問題を解決しようとする一環として、MSBuild.Microsoft.VisualStudio.Web.targets Nuget Packageもインストールしました。しかし、問題を解決するためにそれが必要であったかどうかはまだわかりません。
Visual Studio 2013/update 4を使用して「Azure WebJobとして公開」を使用してWebJobプロジェクトからこのMSB4057エラーを受け取った場合、NuGetパッケージを更新する必要があるかもしれませんMicrosoft.Web.WebJobs.Publish
MyWebJob\packages.configを確認し、バージョンが1.0の場合、バージョン1.02以降が必要です。パッケージマネージャーコンソールから実行
Install-Package Microsoft.Web.WebJobs.Publish -Version 1.0.2
VS 2013 Update4。Microsoft.Web.WebJobs.Publishパッケージをインストールしたにもかかわらず、webjobs.targetsへの参照が間違っているため、Webjobプロジェクトのテンプレートに問題があるようです。
プロジェクトの下部にあるThere Importステートメントがパスの点で正しいことを確認します。2回テストしたところ、形式が正しくないことがわかりました。
<Import Project="..\..\packages\Microsoft.Web.WebJobs.Publish.1.0.2\tools\webjobs.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebJobs.Publish.1.0.2\tools\webjobs.targets')" />
また、特定のVSバージョンにバインドするため、以下の使用は避けてください。
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
参考までに、VS2019と同じ問題、同じソリューション:
WebJobをデプロイしている場合、このエラーはwebjob-publish-settings.json
ファイルが欠落していることが原因である可能性があります(WebJobプロジェクトのPropertiesフォルダーにあるはずです)。その構造は、例えば:
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "MyWebJob",
"startTime": "2017-01-27T03:00:00+00:00",
"endTime": null,
"jobRecurrenceFrequency": "Hour",
"interval": 1,
"runMode": "Scheduled",
"is_singleton": true
}
(これは1時間ごとにスケジュールされたジョブ用です)。
VS 2017(15.5.6)を再インストールしたばかりで、3つのWCFプロジェクトの1つでこれに遭遇しました。私は3つすべてのcsprojsを選択しましたが、それらの間に違いはありませんでした。動作しているものからさまざまなインポート、パスなどをカットアンドペーストしても違いはありませんでした。
NugetパッケージMSBuild.Microsoft.VisualStudio.Web.targets(v14.0.0.3は最新、つまりVS2015)を追加することで、今のところ問題が修正されています...これが永久に消え去ったなんて信じられません。
VS 2015 Update 3でこの正確なエラーにぶつかったところです。最新のMicrosoft.Web.WebJobs.Publish
がインストールされました。適切な方法で、アンインストールと再インストールを試みました。それでも機能しませんでしたが、インストール時に初めて表示されないエラーが発生しました:
このシステムではスクリプトの実行が無効になっているため、install.ps1をロードできません。
これは、PowerShellスクリプトを実行したことがあるほとんどの人が一度に実行したものであり、簡単に修正できます(解決策は here )ですが、エラーメッセージ自体は見落としがちです。
公開するプロジェクトで以下を実行するだけです(そして、VisualStudioが「管理者」として実行されていることを確認してください)。
install-package Microsoft.Web.WebJobs.Publish
Visual Studio 2017に読み込まれたプロジェクトでこの同じ問題に遭遇しました。以前は別のマシンで動作していましたが、新しいマシンに移行したときはそうではありませんでした。
ここで回答のすべての提案を試した後(質問はStackOverflowで何度か重複しています)、私はようやくAzure SDK for VS2015のインストールについて言及した他の誰かに遭遇しました。
これはVS2017では必要ないはずですが、問題は解決しました。以前は古いマシンで2015を使用していましたが、2017に切り替えていました。どうやら、SDKビットは依然として重要でした。
Visual Studio Enterprise 2015 Updateの問題を修正するために、次のパッケージをインストールして、Webジョブのプロジェクトファイルを次のように編集する必要がありました。
STEP 01:Install Packages(スクリプト実行のために管理者としてVSを実行)
1. install-package **MSBuild.Microsoft.VisualStudio.Web.targets**
2. install-package **Microsoft.Web.WebJobs.Publish -Version 1.0.2**
STEP 02:WebJobプロジェクトファイルを編集(VSからプロジェクトをアンロードし、.csprojを編集/保存してから再ロード)
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
@Uri Golaniの回答に追加するには、PackageReference
フォルダーを使用する従来のnugetではなく、新しいpackages
方法に切り替えたため、packages
フォルダ。どうやら、csproj
のpackages
フォルダー(削除したフォルダー)への参照が問題だったようです。他の何かへの正しい参照を取得する方法(PackageReference
sが参照するものは何でも)がわからないので、今のところ、Microsoft.Bcl.Build.1.0.21
とMicrosoft.Web.WebJobs.Publish.1.1.0
nugetフォルダーはこれを修正したようです。
Nugetパッケージのproject.jsonを含むプロジェクトでこのエラーが発生しました。
Project.jsonを削除してpackages.configを使用すると、すべてが正常に機能しました。
これを試す前にWindows PowerShellのExecutionPolicyを設定したことに注意してください( @ Jon Crowellのソリューションを参照 )。これも必要になる場合があります。
誰かがproject.jsonでこれを解決する方法を見つけた場合は、私に知らせてください!