81

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

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

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

ありがとう

4

19 に答える 19

83

私は問題が何であるかを知っていると思います。Azure SDKビットをインストールすると、いくつかのVSWebPublishの更新がインストールされます。これらの1つは、次のファイルを更新します。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets

そのファイルのタイムスタンプが(何らかの理由で)更新された場合のセットアップの定義に基づいて、新しいコンポーネントをインストールしてもファイルは更新されません。

これを解決するには、以下の手順に従うことができるはずです。

于 2012-06-22T21:28:29.483 に答える
74

私はこの問題を抱えていました、そしてそれは追加することによって修正されました:

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

プロジェクトファイルに。

于 2014-01-31T10:46:24.173 に答える
45

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

  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. プロジェクトを保存して再読み込みします。

于 2014-02-26T22:49:44.203 に答える
13

VS 2017でこの問題が発生し、ここで提案されているようにcsprojファイルを手動で変更しようとしましたが、提案された修正のいずれも機能しませんでした。このnugetパッケージに出くわしました。それをインストールすることは私のために働いた。

MSBuild.Microsoft.VisualStudio.Web.targets

于 2018-07-11T17:50:44.007 に答える
9

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

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

参照

于 2012-07-03T19:34:45.047 に答える
8

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

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

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

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

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

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

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

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

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

于 2018-07-04T06:29:21.620 に答える
5

ASP.NetアプリケーションをWindowsAzureに公開したいときに、同様の問題が発生しました。多くの試行錯誤の末、ついにこの解決策は私のために働きました。これには、ファイルの名前の変更や、修正プログラム/パッチのインストール/再インストールは必要ありません。これがあなたがしなければならないことです:

ワードパッド/メモ帳で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" />
于 2013-09-26T04:49:42.340 に答える
4

私は古い質問でこれに気づきました、しかし私は最近それに遭遇しました、そしてここに私がそれを解決した方法があります。

背景:VSstudio13にアップグレードした古いプロジェクトがありました。プロジェクトファイルが正しくアップグレードされていないようです。

csprojファイルにVSv10.0への参照がありますが、実際には「v12.0」であるVS13を実行しています。

そこで、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)' != ''" />

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

于 2015-09-10T08:30:47.643 に答える
3

同様の問題が発生し、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日です。

于 2012-06-25T02:44:41.380 に答える
3

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

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

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

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

補足として:私のプロジェクトファイルもv10.0バージョンのMicrosoft.WebApplication.targetsファイルを参照していますが、それは問題ないようです。

于 2015-12-17T10:12:19.290 に答える
2

同じエラーが発生しました。どういうわけかこの行がありませんでした。

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

すぐ下に追加しました

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

今は正常に動作します

于 2014-07-25T12:07:29.640 に答える
2

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" />
于 2015-03-10T12:48:17.437 に答える
2

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

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

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

于 2015-12-23T11:11:29.573 に答える
2

Visual Studio 2017の場合-.csprojファイルのブロックの後に追加する必要があります。メモ帳を使用して、「。targets」を探して見つけてください...

私は新しいVS2017プロジェクトを作成しましたが、これは私のために機能しています(警告なし):

  <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>
于 2017-09-14T06:57:10.200 に答える
2

同じ問題がありました。でプロジェクトを作成し、VS 2010から公開する必要がありましたVS 2019。ここでの解決策はどれも私にはうまくいきませんでした、そして私は約1日問題に取り組んでいました。

このリンクから何が機能しましたか:http://www.dotnetxp.com/visual-studio-error-publish-target-gatherallfilestopublish-not-exist-project/

これは私がしたことです:

**問題のあるプロジェクトをアンロードしました。

**テキストエディタでcsprojファイルを開きます。

**この行を検索

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

これと交換してください。それが私が使用16.0しているバージョン(vs2019)であるため、私は使用します。

<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">16.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\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

**プロジェクトをリロードして公開します。

チャームのように働いた。

于 2019-12-17T13:43:44.940 に答える
1

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

于 2013-09-12T04:29:40.890 に答える
1

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" />
于 2014-03-10T22:55:54.513 に答える
0

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

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

よろしくお願いします、

明徐。

于 2012-06-12T11:06:03.783 に答える
0

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

あなたは実際のエラーまたはそれらの不足しているファイルを解決に導きます

于 2018-03-01T15:54:40.527 に答える