で構成されるWindowsAzureプロジェクトがあります
これらの2つのコンソールアプリをAzureWebサイトでAzureWebJobsとして展開したいと思います。そこで、ASP.NETプロジェクトでclikecを実行し、[追加]、[追加]の順に選択しました。 Azure WebJobとして既存のプロジェクトを作成し、両方のコンソールアプリを適切なスケジュールで追加しました。
すべてが正常に見えます。2つのコンソールアプリにはスケジュール付きのJSONが含まれ、ASP.NETプロジェクトにはWebJobs定義付きのJSONが含まれています。すべてのプロジェクトは問題なくビルドされます。
問題は、ASP.NETプロジェクトをAzureにデプロイしようとすると、次のようになります。
The target “ResolveWebJobFiles” does not exist in the project
私が見つけた この記事 著者が追加してこの問題を解決したとき
<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')" />
彼のcsprojファイルに追加しましたが、ASP.NETプロジェクトのcsprojファイルにはすでにこのインポートが含まれています。
問題は何ですか?
私でさえこの問題に直面しました。私はそれを解決するために私のウェブジョブに以下のパッケージを再インストールしました
パッケージid = "Microsoft.Web.WebJobs.Publish" version = "1.0.2"
主な理由の1つは、プロパティに「webjob-publish-settings.json」ファイルがない可能性があります。
このファイルが存在し、プロジェクトに含まれていることを再確認してください。
このファイルがwebjobプロジェクトのプロパティフォルダーにあるかどうかを確認します:webjob-publish-settings.json
そうでない場合は、このコンテンツで作成し、webJobNameのみを変更します(今のところ)
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "MyWebJobName",
"startTime": "2014-12-09T00:00:00-08:00",
"jobRecurrenceFrequency": "Hour",
"interval": 1,
"runMode": "Scheduled",
"stopping_wait_time": 3600
}
私の場合、1つの無効なWebジョブが関連付けられていたのはこのファイルであり、それを削除して機能し始めました
webjobs-list.json
私もこれに遭遇しました。ソリューション内のすべてのパッケージを更新した後、これを取得し始めました。 <import />
はありましたが、別のバージョンを探していました。だからそれもチェックしてください。
最近このエラーが発生し、[WebProject] /Properties/webjobs-list.jsonにソリューションから削除された古いWebジョブへの参照が含まれていることが原因であることがわかりました。 jsonから参照を削除すると、問題が修正されました。
また、WebJobプロジェクトの.netバージョンとWebアプリの比較も確認する価値があります。
ドキュメント に記載されているように
WebJobs対応プロジェクトには、次の項目が追加されています。
-Microsoft.Web.WebJobs.PublishNuGetパッケージ。
-デプロイとスケジューラの設定を含むwebjob-publish-settings.jsonファイル。
Microsoft.Web.WebJobs.Publish
Nugetパッケージへの参照が必要なプロジェクトは、Webアプリケーションではなく、Webjob対応のプロジェクトアプリケーションであることが明確に示されています。 Webアプリケーションに必要なのはwebjobs-list.json
ファイルのみです。
Webジョブコンソールアプリケーションにもwebjob-publish-settings.json
ファイルがある場合がありますが、これは非連続ジョブの場合のみです。