14

ASP.NETアプリケーション (ASP.NET Web サイトではなくASP.NET Web アプリケーション) を複数のサーバーにコピーする準備をするために、Visual Studio 2008 でWeb 配置プロジェクトを使用しています。ローカルのステージング サーバー、FTP 経由の別のサーバーにファイルをコピーする必要があり、顧客のサーバーからファイルをフェッチする必要がある場合もあります。

したがって、ソースと宛先の間で多くの比較を行う必要なく、コンパクトな形式で展開するすべてのファイルを用意すると便利です。Web 配置プロジェクトには、すべての aspx ファイルと ascx ファイルを単一の (追加の) アセンブリにコンパイルするという優れた機能があります。

サーバー上の aspx プレースホルダー ファイルを削除する方法何とか.compiled見つけました。

Rick Strahl のブログから:

.Compiled ファイルは、Web サイト内の各ページおよびコントロールのマーカー ファイルであり、アセンブリ内で使用されるクラスを識別します。これらのファイルは、ASPX ページをプリコンパイル済みアセンブリ内の適切なプリコンパイル済みクラスにマップするため、オプションではありません。.Compiled ファイルを削除すると、マップするページを実行できなくなり、厄介な実行エラーが発生します。

.compiledbin フォルダー内のファイルに対するチェックをインターセプトするモジュール/ハンドラーを使用している可能性がありますか?

4

8 に答える 8

4

.compile ファイルは、展開時のプリコンパイルから取得されます。したがって、基本的に3つのオプションがあります。

  1. .compiled ファイルを保持する
  2. ソースコードをプリコンパイルしてデプロイしない
  3. これを Web サイトではなく Web アプリケーションに変換し、アセンブリとしてコンパイルします。

私自身も同じ問題に遭遇しました。Web サイトの展開を扱う場合、実際にはほとんどの場合 1 を選択しますが、まれにサイトを長期間維持する必要があることがわかっている場合は、時間をかけて Web サイトにアップグレードします。応用。

于 2009-01-31T01:30:49.960 に答える
2

私も .compiled ファイルは好きではありませんが、そこにあったとしても誰も傷つくことはありません。では、なぜわざわざ?

于 2009-05-12T16:36:27.673 に答える
1

ASP.NETの仮想パス プロバイダー( KB how to here ) を参照してください。

この提案の功績はCheesoに帰する必要があり、彼の自己回答の質問は次のとおりです。

ASP.NET で「WAR ファイル」タイプのデプロイメントを取得できますか?

于 2009-05-13T10:30:08.543 に答える
0

コードを更新可能として(公開設定で)公開すると、これらのファイルが生成されます。その値のチェックを外して、再公開します。これは私が知っている古い質問ですが、ここではこれに対する答えが明確に定義されていません。

于 2011-07-27T07:31:58.833 に答える
0

.compiled ファイルについてはわかりませんが、コンパイル時にファイルを手動でコピーする代わりに、Subversion でファイルを更新するようにサーバーを設定できます。

そのため、Web 配置プロジェクトを使用してファイルをコンパイルし (単一のアセンブリにではなく)、この目的のために作成したリポジトリに配置し、各サーバーで svn update を実行して、ファイルを自動的に取得して比較します。

あなたが直接求めたものではないことはわかっていますが、探求する道かもしれません。

于 2009-01-27T11:43:18.250 に答える
0

オプションを指定してaspnet_mergeツールを使用すると、.compiledファイルを削除できます。-r

メイン コード アセンブリ (App_Code フォルダー内のコード) の .compiled ファイルを削除します。アプリケーションにメイン コード アセンブリへの明示的な型参照が含まれている場合は、このオプションを使用しないでください。

于 2010-01-26T21:10:46.103 に答える
0

展開プロジェクトに「除外フィルター」を追加します。

  1. 展開プロジェクトで。
  2. コンテンツ ファイルを右クリックします。
  3. 「除外フィルター」をクリックします。
  4. 「*.Compiled」を追加
  5. [OK] をクリックします。

以上です。

于 2009-05-08T21:04:31.237 に答える