232

VS 2012にWebアプリケーションプロジェクトがあり、Web公開ツールを使用すると、正常にビルドされますが、公開ターゲット(この場合はファイルシステム)にファイルがコピーされません。

ビルド出力を見ると、すべてがobj \ Release \ Package \ PackageTmp \に正しくコピーされていることがわかりますが、ビルド出力に表示されるのは次のとおりです。

4>プロジェクト「{Project}.csproj」の作成が完了しました。
4>既存のファイルを削除しています...
4>フォルダを公開しています/...
4> ==========ビルド:3成功、0失敗、1最新、0スキップ===== ===== ==========
公開:1成功、0失敗、0スキップ==========

公開が成功したと表示されていても、公開のターゲットディレクトリにファイルがありません。

これは複数のプロジェクトで見られ、ソリューション/プラットフォーム構成がこの問題を引き起こしているように見えることがありますが、これの正確な原因を特定することはできませんでした。

他の誰かがこれが起こっているのを見たことがありますか、またはこれを正しく機能させる方法についてのアイデアを持っていますか?

アップデート:

私はこれの回避策を見つけたかもしれません。私はこれが再び起こったばかりで、公開設定をいじっていました。[設定]タブで選択した構成を別の構成に変更してから、使用したい構成に戻すと、すべてのファイルの公開が再開されました。うまくいけば、これは将来的に他のプロジェクトで機能します。

更新2:

Microsoft Connectにバグを投稿し、VSWebDeveloperチームの開発者から返信がありました。彼は、内部ビルドでこの問題を修正し、この問題を修正する公開ツールのアップデートをまもなくリリースすると述べました。

更新3:

これは最近、Visual Studio 2012Update2で​​修正されました

4

31 に答える 31

105

同じ問題。回避策は、公開設定をリリースからデバッグに変更することでした。再公開してからリリースに戻します...

于 2012-09-12T17:07:04.843 に答える
78

これは、vs2012 の RC で作成されたソリューション/プロジェクトが原因である可能性があります。これは数か月前に発生し、ソリューションのビルド構成がプロジェクトの構成と一致していることを確認することで問題を修正しました...

VS2012RCでVS2012 Express for Webを使用して最初に作成された同じソリューションを開くと、最近同じ問題が発生しました。元のポスターが示唆したことを正確に行い、問題を解決しました。

これが私を答えに導くスレッドです:

connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails

私を助けた上記の会話からの適切な応答は次のとおりです。

2012 年 6 月 13 日午後 12:00 に Microsoft によって投稿されました。

これは、ソリューション構成とプロジェクト構成を処理する方法のバグでした。それらが同じであると誤って想定したため (たとえば、Solution の Release|x86 では、各プロジェクトも Release|x86 に設定されます)、ファイルの公開に間違ったビルド プロパティを使用することになりました。

回避策は、ソリューション構成とビルド構成を一致させることです。この問題は、Visual Studio 2012 の次のリリースで修正される予定です。

ありがとう - Jimmy Lewis SDET、Visual Web 開発者チーム

于 2012-09-20T02:22:10.697 に答える
39

これをもう少し進めます。発行プロファイルを作成すると、2 つのファイルが作成されます。

  • NewProfile.pubxml
  • NewProfile.pubxml.user

ソース管理から PublishProfile フォルダーにこれらのファイルを含むプロジェクトを開くと、.pubxmlファイルではなくファイルのみが.publxml.user含まれるため、プロジェクトを開くとその場でファイルが作成.publxml.userされます。その場で新しいものを作成すると.publxml.user、xml は次のようになります。

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

新しいプロファイルを作成すると、次のような xml が作成されます。

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <TimeStampOfAssociatedLegacyPublishXmlFile />
    <EncryptedPassword />
  </PropertyGroup>
</Project>

<PropertyGroup>ノードを取得して.pubxml.userファイルに入れると、PublishProfiles が再び機能し始めます。

于 2012-09-24T13:51:50.560 に答える
21

簡単な修正は、発行プロファイルを削除して、新しいプロファイルを作成することです。

ソリューションを右クリックして公開を選択すると、プロファイルが設定されます。これを削除して、新しいものを作成します。

これで修正されます。

2010年から2012年への切り替えでこの問題が発生しました

于 2013-02-13T15:44:40.773 に答える
9

同じエラーが発生し、設定をリリースからデバッグに変更すると、問題は解決しました..

于 2012-11-19T11:59:07.827 に答える
8

私はこれと同じ問題を抱えていましたが、このスレッドの答えはどれもうまくいきませんでした。私の問題は、(私のアプリによって) 動的に生成された静的 HTML ファイルを含むディレクトリがあることでした。ディレクトリ全体が公開されていませんでした。

私のために働いた解決策はここにありました:

しばらく前に発生し、文書化する必要があると考えていた問題の 1 つは、プロジェクトを公開したときに特定のファイル タイプがアップロードされなかったということでした。

問題のファイルの種類は、.pdf ファイルと .rtf でした。

これが発生した理由は、これらのファイル拡張子が Visual Studio による公開を必要としていると認識されなかったためです。幸いなことに、これは Visual Studio で変更できます。

コピーされていないファイルを選択します。プロパティで、ビルド アクションがContentに設定されていることを確認します。

これが機能しない場合は、次の方法を試すことができます。

[プロジェクト] メニューで [Web のパッケージ化/発行] を選択し、次のドロップダウンに注意してください。

ここに画像の説明を入力

これを、このプロジェクト フォルダー内のすべてのファイルに変更してみてください。

于 2013-01-28T17:10:29.133 に答える
7

これは、公開するために必要な情報が .pubxml.user に含まれており、そのファイルがソース管理に含まれていない (また含まれるべきではない) ためです。この VS バグを修正するには、情報を .pubxml.user ファイルから .pubxml ファイルにコピーします。関連するプロパティは次のとおりです。

<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>

それらを .pubxml に入れてください。

于 2013-02-15T17:18:59.437 に答える
7

これらのソリューションをすべて試しましたが、これは毎回機能するソリューションです。

「Publish method:」を「File System」からたとえば「Web Deploy」に変更し、すぐに「File System」に戻します。

于 2013-10-19T03:06:52.330 に答える
5

私はいくつかのプロジェクトで同じ問題を抱えています。ヒットしたのは Web プロジェクトだけのようです。プロファイルを削除して再作成すると、問題が 1 回だけ解決します。さらに、生成された publishxml を比較しても違いがないため、プロファイルとはまったく関係がないようです。

ビルドの問題を前後に変更するためにOPが言及した回避策は、現時点で唯一の信頼できる解決策のようです。

于 2012-09-08T06:30:53.237 に答える
4

ここでも同じ問題がありました。

「Publish method:」を「File System」からたとえば「Web Deploy」に変更し、すぐに「File System」に戻します。

于 2012-12-20T07:58:44.980 に答える
4

私の問題は myproject.csproj ファイルの構成が間違っていました。'_address-step1-stored.cshtml' ファイルが発行時にコピーされませんでした。「なし」が「コンテンツ」に変更されました。これで問題ありません。 ここに画像の説明を入力

于 2016-11-21T13:37:51.417 に答える
4

VS 2010 で同じ問題に遭遇しました。パブリッシュ出力、イベント ログを確認し、ビジュアル スタジオ ログをオンにして確認した後、最近 v1 に更新されたと思われる Web パブリッシュを (追加/削除を介して) 削除することにしました。 0.30810.0. これで問題は解決しました。

于 2012-09-05T09:08:47.083 に答える
3

ディスク公開ターゲットを使用したVS2012Proでも同じ問題が発生します。プロジェクトは以前は正しく公開されていましたが、ファイルを宛先フォルダーにコピーできなかったため、この問題の実行を開始しました。

解決策は、公開プロファイルを編集し、モードをリリース(任意のCPU)からデバッグに変更してから、リリース(任意のCPU)に戻すことでした。これを行うと、PublishProfiles \ projname.pubxml.userファイルが(上記のように)書き換えられます。propertygroupノードの下にLastUsedBuild、LastUsedPlatform、TimeStampOfAssociatedLegacyPublishXmlFile要素が追加されたようです。公開が完了すると、個別のファイルと公開時刻を持つ別のItemGroupが追加されます。

于 2012-12-10T18:29:54.393 に答える
1

このアクションは私にとって成功しました:

"Properties>PublishProfiles>xxxx.pubxml" で Publish Profiles を強制終了し、再設定します。

于 2013-01-25T03:33:51.233 に答える
1

ターゲットの場所を obj/[release|stage|..] からソリューション フォルダーの外部の新しいパス (c:\deployment など) に完全に変更することで、この問題を回避できることがわかりました。VS 2012 が混乱し、公開プロセス中にどこかであきらめていたようです。

マット

于 2014-03-18T10:20:19.720 に答える
1

最近、Umbraco CMS をインポートした MVC プロジェクトの VS 2013 で同じ問題が発生しました。公開できませんでした。上記の答えは役に立ちましたが、VSで実際に何をすべきかを理解するのにしばらく時間がかかりました. 調べるには、MSブログなどでいくつかの調査が必要でした。私はそれを簡単に言うようにしています:

  • VS ツールバーで、Release や Any CPU などの特定の構成を選択します。プロジェクトを実行します。
  • その後、ソリューション エクスプローラーで問題のソリューションを右クリックし、[公開] を選択します。新しい発行プロファイルを作成するか、特定のプロファイルを使用しますが、前回プロジェクトを実行する前と同じ設定 (リリースと任意の CPU など) が選択されていることを常に確認してください。
  • さらに、私の場合、VS を再起動してすべての公開プロファイルを削除しても、最後に失敗した公開試行の設定がスタックしたため、OBJ フォルダーを削除する必要がありました。
于 2015-05-27T17:49:42.970 に答える
0

現在のプロジェクトで、同じクラス名と別のページ名でバック コピーを作成したかどうかを確認します (クラス名はコピーされたファイルを継承します)。最終的に、それはコンパイラを混乱させます!!!

CodeFile="Consolidated.aspx.vb" Inherits="連結

于 2013-12-21T07:16:40.537 に答える
0

Visual Studio 2012 では、リリースを切り替えると依然として問題が発生します。

objフォルダーを削除するビルド前イベントを追加しましたdel /s /f /q $(ProjectDir)\obj。これにより、公開の問題が修正されました。クリーニングは時々機能しますが、常に機能するとは限りません。

于 2013-03-21T10:11:06.617 に答える
0

私はついに自分で答えを見つけました。上記の解決策はすべてうまくいきません。

私がやったことは、プロジェクトをドライブに移動し、プロジェクトフォルダーを短いものに変更して公開することです..

私の側で失敗した理由は、プロジェクト名/階層が非常に長いためです。

C:\Users\user\Desktop\Compliance Management System\ComplianceIssueManagementSystem\ComplianceIssueManagementSystem

rarファイルを抽出すると、名前/パスが長すぎると表示されることがあるため、これを考えていました。Visual Studio 2012 パブリッシュと同じになると思いました。そしてそうです!

それがあなたたちを助けることを願っています。

于 2013-11-06T12:44:49.773 に答える
0

次の手順に従って解決します。

Build > Publish > Profile > New

新しいプロファイルを作成し、既存のプロファイルと同じ設定で構成します。

プロジェクトが正しく発行されるようになりました。これは、新しいバージョンの Visual Studio で作成された別のマシンからのソース管理された発行プロファイルの結果としてよく発生します。

于 2016-12-07T11:08:57.007 に答える
0

ソリューションで参照されている他のいくつかのプロジェクトを含む Web アプリケーションがあります。過去に何度も単一の発行構成で正常にデプロイしました。過去に見逃していたプロジェクトのプロジェクト構成をデバッグからリリースに変更しました。次に展開を試みたときに、パブリッシュが静かに失敗するという次のような症状が発生しました。何もせず、成功したと表示されます。

1>------ Build started: Project: Project, Configuration: DeployProduction Any CPU ------
1>  
2>Publishing folder /...
========== Build: 1 succeeded, 0 failed, 9 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

それを回復する唯一の方法は、発行プロファイルを消去し、Visual Studio を閉じて強制的に削除を保存し、再度開き、発行プロファイルを最初から再作成することでした。それをしたら、再び問題なく公開できました。

Win8 VS2012、くだらないラップトップ。

于 2013-01-10T12:27:54.200 に答える
0

これは、Visual Studio で生成されたサービス参照ファイルがパス全体の長さの点で長くなりすぎたときに発生しました。

svcutil.exe を使用してサービス リファレンスを再生成し、元のサービス リファレンス ファイルをすべて削除して短縮しました。

svcutil は次のように呼び出すことができます。

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe" /language:CS http://myservice /namespace:*,My.Namespace

My.Namespace は、コンパイル エラーを回避するために、生成されたサービス プロキシ (通常は Reference.cs ファイルにあります) の既存の名前空間に置き換える必要があります。

http://myserviceサービス エンドポイントの URL に置き換える必要があります。

于 2014-09-05T01:58:30.560 に答える
0

私は何度かウェブサイトを公開していました。しかし、ある日、いくつかの aspx ファイルを変更して Web サイトを公開しようとすると、公開フォルダーが空になりました。

私の回避策では、解決策を見つけました。

  1. 発行ウィザードは、発行中にエラーを反映しますが、宛先フォルダーにファイルをコピーしません。

  2. エラーを生成するファイルを見つけるには、Web サイト フォルダーの内容を新しいフォルダーにコピーし、その Web サイトでビジュアル スタジオを起動します。

  3. 公開しようとすると、エラーを含むファイル名が表示されます。

  4. 元の Web サイト フォルダーのエラーを修正して公開を試みるだけで、以前と同じように機能します。

于 2016-04-18T05:15:59.123 に答える
-1

初め:

  • リリース構成でビルドします。
  • [プロジェクト プロパティ] -> ページで、[Web のパッケージ化/発行] の下の [すべてのファイルとフォルダー] を選択します。
  • ソリューションを再構築します (ソリューションのクリーンアップ後)。
  • 今すぐ公開します。

公開中に、選択した内容を再確認してください。
これでうまくいくはずです。それは私のためにやった!:)

于 2016-07-24T04:49:33.930 に答える
-2

最も簡単なのは、

   1. select the file(s) that are not being copied,
   2. Press <F4> to get the properties window
   3. Make the "Build Action" property "compile" or "content" depending on what it is.
   4. Now this particular file will be included!
于 2014-01-26T09:21:15.303 に答える