私はVisual Studio 2017を使用しており、いくつかのWebプロジェクトとWebジョブプロジェクトのソリューションを用意しています。ローカルでデバッグ中にwebjobファイルを含めるにはどうすればよいですか?ウェブパッケージを公開するときに除外するにはどうしたらいいですか?
は、私がしたいいくつかのファイルは、私がしたい開発環境でローカルで実行している場合を含めたWebパブリッシングパッケージの一部として展開されることからを除外しています。
私がある、ここhttp://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspxや他の場所で説明したプロセスを使用しようとしています:
<ItemGroup>
<ExcludeFromPackageFiles Include="connectionstrings.config">
<FromTarget>Project</FromTarget>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</ExcludeFromPackageFiles>
</ItemGroup>
これは私のWebプロジェクトのために完璧に動作 - connectionstrings.configファイルを構築するときには、私のbin\
にコピーされることを意味私のwebjobプロジェクトに実装されている場合、ファイルは私のbin\
ディレクトリにコピーされますが、展開パッケージにも含まれています。
コピーファイル:私は見MSBuildの出力で
:のconnectionStrings \への「bin \ ProdBuildCfg "C \ユーザーは私のプロジェクト\ myappの\ myappの\ webjob1 \ connectionstrings.config \ \ドキュメント\します"。 config "と入力します。それはまた私がローカル/デバッグを実行することができます、そしてので私が欲しいものである
:
コピーC:\ユーザーは、私のbin \ \プロジェクト\ myappの\ myappの\ webjob1 \ \ドキュメント\ ProdBuildCfg \ connectionstrings.configをobj \ ProdBuildCfg \ Package \ PackageTmp \ app_data \ jobs \ continuous \ webjob1 \ connectionstrings.configにコピーします。
これは問題を示しています - connectionstrings.configは引き続きパブリッシング/デプロイメントのためにパッケージディレクトリにコピーされています。
上記の記事などに記載された方法は、Webプロジェクトに適用され、彼らはあなたがプロジェクトファイルの
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
ラインの下<ItemGroup>
を置く必要があることを示します。私のプロジェクトファイルが適切な<Import Project="...*.targets')" />
行が含まれていないか、私はではないんだけどどちらか - 私は問題がターゲットに関連する疑いがある
<Import Project="..\packages\Microsoft.Web.WebJobs.Publish.1.0.13\tools\webjobs.targets" Condition="Exists('..\packages\Microsoft.Web.WebJobs.Publish.1.0.13\tools\webjobs.targets')" />
:Webjobプロジェクトは、その行を含めるのではなく似た何かを持っていませんファイル内の正しい場所。
次の私はここHow do I include webjob files while debugging locally but exclude when publishing a web package?を述べた方法で試してみました。(私の理解がCopy to output directory
設定した結果、そのアクションが明らかにされている
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<ExcludeFilesFromDeployment>connectionstrings.config</ExcludeFilesFromDeployment>
</PropertyGroup>
私はNone
とCopy to output directory
セットに設定connectionstrings.configのビルドアクションを持つAlways
にしますパッケージング/デプロイメントに関連するアクションとは異なります)。同じ結果。 (私は自分のビルド構成のために私が右の<PropertyGroup>
にいることを保証しました。
注:私はVSでプロジェクトを右クリックし、「アズールwebjobとして公開」を選択またはデバッグ中に私はwebjobファイルを含めるにはどうすればよいmsbuild myproj.csproj /p:DeployOnBuild=true /p:Configuration=Release /p:PublishProfile="Prod" /p:VisualStudioVersion=15.0 /p:Password=
残念ながら、この設定は出力ディレクトリにファイルがコピーされないようにします。つまり、ローカルでは実行またはデバッグできません。開発環境でローカルで実行しているときに含めるファイルがいくつかありますが、これをWeb公開パッケージの一部として展開しないようにする必要があります。 – Howiecamp
@Howiecamp、あなたの返事をありがとう。 'ExcludeFromPackageFiles'のプロパティはwebjobプロジェクトでは機能しません。この問題を解決するには、回避策を提供しました。更新された回答を確認して詳細情報を確認することができます。お役に立てれば。 –
あなたが提案している ''アプローチを試してみましょう。 'msbuild.exe'コマンドライン(例えば私の質問を参照してください)を使ってパブリッシュするか、対話的にVSを右クリックして" Azure webjobとして公開 "を選択してパブリッシュしても同じ動作をするでしょうか? –
Howiecamp