1

私は Visual Studio でマウスの右クリックを使用してサイトを公開してきましたが、手動作業が多すぎることを除けば、すべてうまくいきました。最近、ビルド スクリプトを使用して aspnet_compiler を呼び出し、ASP.NET Web アプリケーションを公開するように変更しました。私のビルドスクリプトでは、以下のようなことをします:

sh "#{aspnet_compiler} -p ../src/webapp -v targetDir ./publish –u"

私のプロジェクトのディレクトリ構造は次のようになります。

/build/rakefile.rb
/build/publish/ --published site goes here
/src/website/bll/ --business logic goes here
/src/website/ --aspx pages
/src/website/code/ --some c# code

aspnet-compiler を呼び出すと、/src/website/code/ の下の c# コードがコンパイルされないことを除いて、すべて正常に機能しました。aspnet-compilerが c# コードを bll ディレクトリの下にコンパイル、/src/website/ の下のすべてを公開ディレクトリ (/src/website/code/ を含む) に xcopy したようです。aspnet-compiler を呼び出す正しいスイッチを使用していないのか、それともこれが望ましい動作なのかわかりません。

助けてくださいありがとう!

4

2 に答える 2

2

私は自分の問題を理解しました。

まず、私の rake ビルド スクリプトは次のようになります。

sh "#{aspnet_compiler} -f -fixednames -u -p ../src/website -v / ./publish"

次に、Visual Studio 内でマウスを右クリックして [発行] をクリックした場合の出力動作は、aspnet_compiler の呼び出しとは異なります。

パブリッシュを右クリックすると、次のようになります。

  • Global.asaxを直接コピーする
  • bin ディレクトリの下に.dllおよび.pdb (デバッグが必要ない場合は .pdb ファイルを削除できます) ファイルのみを生成します。

aspnet_compiler を呼び出す場合:

  • Global.asax をbin ディレクトリの下のApp_global.asax.compiledおよびApp_global.asax.dllにコンパイルします。
  • PrecompiledApp.configも生成します(これは、aspx ページを更新可能にするように指定したためです)

bin の下の .dll 拡張子以外のものを基本的に削除する公開タスクの後に、クリーンアップ タスクがありました。

とにかく今、私は何か新しいことを学びました。

于 2009-10-02T00:13:00.377 に答える
1

ビルド マシンで aspnet_compiler を使用すると、同様の問題が発生しました (MSBuild を使用しました)。私にとっての解決策は、aspnet_compiler を呼び出す前にソリューションを構築することでした。MSBuild では、次のようになります。

<MSBuild Projects="$(PhysicalPath)\solutionName.sln" Properties="Configuration=Debug"/>

devenv solutionName.sln /build を使用することもできます (MSBuild を使用していない場合)。

于 2009-10-01T08:36:39.247 に答える