最近、Visual Studio 2010 Service Pack 1用の新しいAzure開発ツールをインストールしました。既存のWebサイトを公開しようとするたびに(ファイルシステムの展開を使用して)、次のエラーが表示されます。
ターゲット「GatherAllFilesToPublish」はプロジェクトに存在しません。
誰が私に欠けていることを教えてもらえますか?
ありがとう
皆さん、この問題に直面しているのは本当に残念です。
私は問題が何であるかを知っていると思います。 Azure SDKビットをインストールすると、VS Web Publishの更新がインストールされます。これらの1つは、C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targetsにあるファイルを更新します。 (何らかの理由で)ファイルのタイムスタンプが更新されている場合、セットアップの定義方法に基づいて、新しいコンポーネントをインストールしてもファイルは更新されません。
これを解決するには、次の手順に従う必要があります。
試してみて、動作するかどうか教えてください。
私はこの問題を抱えていましたが、以下を追加することで修正されました。
<Target Name="GatherAllFilesToPublish">
</Target>
プロジェクトファイルに。何が起こっているのかまだわかりません。
これは私のために働いた 修正-エラーを公開するためにすべてのファイルを収集する
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
を探します行の上に次を追加します。
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
プロジェクトを保存してリロードします。
これらのインストールを削除すると、問題が解決しました。
ASP.NetアプリケーションをWindows Azureに公開したいときに、同様の問題がありました。最終的に多くの試行錯誤の後 this 解決策は私のために働いた。これには、ファイルの名前変更や、ホットフィックス/パッチのインストール/再インストールは必要ありません。ここにあなたがしなければならないことがあります:
Wordpad/NotepadでASP.Netプロジェクトファイル(.csproj)を開き、次のような行を見つけます。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
以下のように行に置き換えます。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
私はVS 2017でこの問題に遭遇し、ここで提案されているようにcsprojファイルを手動で変更しようとしましたが、提案された修正はどれもうまくいきませんでした。このヌジェパッケージに出くわしました。それをインストールすることは私にとってはうまくいきました。
私は古い質問でこれに気づきましたが、最近それに出くわしました。ここでそれを解決しました。
背景:VS studio 13にアップグレードした古いプロジェクトがありました。プロジェクトファイルが正しくアップグレードされなかったようです。
CsprojファイルにはVS v10.0への参照がありますが、実際には「v12.0」であるVS 13を実行しています。
それで、csprojファイルに、「v10.0」フォルダーではなく「v12.0」フォルダーを使用するように指示しました。
これは私が持っていたものです:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
これは私がそれを変更したものです:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
これで、ファイルシステムへの公開が機能しました!
同様の問題があり、Sayedが提供する手順を使用して解決しました。
ただし、名前を変更したファイルはv10.0ディレクトリにありました。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets.
そこにあった元のファイルの日付は2011年1月18日で、拡張子を.bakに変更してKB2591016を再インストールした後、公開が再び機能しているようです。ファイルMicrosoft.WebApplication.targetsの新しい日付は、2011年8月11日です。
VS2017と同じ問題。これを試すことができます、それは私のために働いた。
キーワード「WebApplication.targets」を検索します
<Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
この行をコメントまたは削除します(「条件」に応じて2行になる場合があります)。
このステップでは、約500Mのパッケージをインストールするよう求められます...
その後、プロジェクトをリロードすると、動作します!
VS 2017をインストールするときに、いくつかのコンポーネントが不足していると思います。
また、VS2017ではMSBuild Pathがまったく異なることに気付きますが、csprojファイルで相対パスを使用しているため、これは問題に関連していない可能性があります。
Visual Studio 2013(および2015)でも同じ問題に苦しんでいます。
私にとって重要な修正は、VSToolsPath
プロパティ設定を追加することでした。これは、何らかの理由でプロジェクトファイルにありませんでした。
これを<PropertyGroup>
ディレクティブに追加しました:
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
副次的注意事項として、私のプロジェクトファイルはMicrosoft.WebApplication.targets
ファイルのv10.0バージョンも参照していますが、それで問題ないようです。
同じエラーが発生しました。どういうわけか、この行が欠落していました。
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
すぐ下に追加しました
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
今はうまくいく
プロジェクトを右クリックして、「編集(プロジェクト名).csproj」を選択します。 (例:メモ帳で編集)行の上に次を追加を探します。
13.0 $(MSBuildExtensionsPath32)\ Microsoft\VisualStudio\v $(VisualStudioVersion)プロジェクトを保存して再読み込みします。
これは本当に私のために働く、ありがとう
VS2013でも同じ問題がありますが、解決策は、新しい空のWebアプリケーションプロジェクトを作成して、次の行を古いWebサイトプロジェクトにコピーすることです:上部:
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Visual Studio 2017の場合-.csprojファイルのブロックの後に追加する必要があります。メモ帳を使用し、「。targets」を探して見つけてください...
私は新しいVS 2017プロジェクトを作成しましたが、これは私のために働いています(警告なし):
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
Sayedのソリューションは、VS2012を使用してアップグレードされた私のプロジェクトでは機能しませんでした。しかし this は機能しました
VS2012(Visual Studio 2012)でVS2010プロジェクトを編集する場合は、これを試してください。以下からcsprojファイルを編集します。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
そして次のように変更します:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
私が修正した同じ問題。一部のファイルがソリューションに含まれていないか確認してください。 _Error - The target "GatherAllFilesToPublish" does not exist in the project.
_のようなエラーに直面している場合は、.projファイルを開いてこの行を削除します<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
実際のエラーまたはそれらの欠落ファイルをソリューションに取得します
私の側では問題を再現できないため、SDKを再インストールすることをお勧めします。
新しいSDKをインストールする前に、古いSDKを完全に削除してください。
宜しくお願いします、
徐明。