web-dev-qa-db-ja.com

「ターゲットGatherAllFilesToPublishが存在しません」というエラーが表示されるのはなぜですか?

最近、Visual Studio 2010 Service Pack 1用の新しいAzure開発ツールをインストールしました。既存のWebサイトを公開しようとするたびに(ファイルシステムの展開を使用して)、次のエラーが表示されます。

ターゲット「GatherAllFilesToPublish」はプロジェクトに存在しません。

誰が私に欠けていることを教えてもらえますか?

ありがとう

69
Joe

皆さん、この問題に直面しているのは本当に残念です。

私は問題が何であるかを知っていると思います。 Azure SDKビットをインストールすると、VS Web Publishの更新がインストールされます。これらの1つは、C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targetsにあるファイルを更新します。 (何らかの理由で)ファイルのタイムスタンプが更新されている場合、セットアップの定義方法に基づいて、新しいコンポーネントをインストールしてもファイルは更新されません。

これを解決するには、次の手順に従う必要があります。

試してみて、動作するかどうか教えてください。

82

私はこの問題を抱えていましたが、以下を追加することで修正されました。

<Target Name="GatherAllFilesToPublish">
</Target>

プロジェクトファイルに。何が起こっているのかまだわかりません。

55

これは私のために働いた 修正-エラーを公開するためにすべてのファイルを収集する

  1. プロジェクトを右クリックして、「編集(プロジェクト名).csproj」を選択します。 (例:メモ帳で編集)
  2. <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />を探します
  3. 行の上に次を追加します。

    <PropertyGroup> 
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion>
     <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
    </PropertyGroup>
    
  4. プロジェクトを保存してリロードします。

44
PhillyNJ

これらのインストールを削除すると、問題が解決しました。

  • Microsoft Web Publish-Visual Web Developer Express 2010
  • Microsoft Web Publish-Visual Studio 2010

参照

9

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" />
5
Rashid

私はVS 2017でこの問題に遭遇し、ここで提案されているようにcsprojファイルを手動で変更しようとしましたが、提案された修正はどれもうまくいきませんでした。このヌジェパッケージに出くわしました。それをインストールすることは私にとってはうまくいきました。

MSBuild.Microsoft.VisualStudio.Web.targets

5
Buddy J

私は古い質問でこれに気づきましたが、最近それに出くわしました。ここでそれを解決しました。

背景: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)' != ''" />

これで、ファイルシステムへの公開が機能しました!

4
Vilhelm H.

同様の問題があり、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日です。

3
Sprinkle

VS2017と同じ問題。これを試すことができます、それは私のために働いた。

  1. プロジェクトをアンロードし、csprojファイルを編集します
  2. キーワード「WebApplication.targets」を検索します

     <Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
    

    この行をコメントまたは削除します(「条件」に応じて2行になる場合があります)。

  3. プロジェクトの保存と再読み込み

このステップでは、約500Mのパッケージをインストールするよう求められます...

その後、プロジェクトをリロードすると、動作します!

VS 2017をインストールするときに、いくつかのコンポーネントが不足していると思います。

また、VS2017ではMSBuild Pathがまったく異なることに気付きますが、csprojファイルで相対パスを使用しているため、これは問題に関連していない可能性があります。

3
Joey

Visual Studio 2013(および2015)でも同じ問題に苦しんでいます。

私にとって重要な修正は、VSToolsPathプロパティ設定を追加することでした。これは、何らかの理由でプロジェクトファイルにありませんでした。

これを<PropertyGroup>ディレクティブに追加しました:

<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>

副次的注意事項として、私のプロジェクトファイルはMicrosoft.WebApplication.targetsファイルのv10.0バージョンも参照していますが、それで問題ないようです。

3
derFunk

同じエラーが発生しました。どういうわけか、この行が欠落していました。

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

すぐ下に追加しました

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

今はうまくいく

2
StefanHa

プロジェクトを右クリックして、「編集(プロジェクト名).csproj」を選択します。 (例:メモ帳で編集)行の上に次を追加を探します。

13.0 $(MSBuildExtensionsPath32)\ Microsoft\VisualStudio\v $(VisualStudioVersion)プロジェクトを保存して再読み込みします。

これは本当に私のために働く、ありがとう

2
Pratham

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" />
2
learnerplates

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>
2
Yovav

Sayedのソリューションは、VS2012を使用してアップグレードされた私のプロジェクトでは機能しませんでした。しかし this は機能しました

1
Rush Frisby

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" />
1
SushiGuy

私が修正した同じ問題。一部のファイルがソリューションに含まれていないか確認してください。 _Error - The target "GatherAllFilesToPublish" does not exist in the project._のようなエラーに直面している場合は、.projファイルを開いてこの行を削除します<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

実際のエラーまたはそれらの欠落ファイルをソリューションに取得します

0

私の側では問題を再現できないため、SDKを再インストールすることをお勧めします。

新しいSDKをインストールする前に、古いSDKを完全に削除してください。

宜しくお願いします、

徐明。

0
Ming Xu - MSFT