2007-07-05

λ [.NET] aspnet_compiler.exe 別マシンへの配置する時の罠

aspnet_compiler.exe を含めて CruiseControl.NET を実行しているマシンと、 aspnet_compiler.exe の実行結果を配置するマシンが違う環境で、Cドライブがあふれる事件が起きた。 今日の2回目。

というか1回目は ディスククリーンアップウィザードでお茶を濁しただけだったのだが、 まじめに原因追求したところ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files の下に 大量のフォルダが…

一応 C:\WINDOWS の容量を調べたつもりだったのだが、集計があまりに遅くて「1GBぐらいしか使ってないのにどこに巨大ファイルが??」という状態だった。 ファイル数が多くて削除するのも一苦労。DEL コマンドでいけるような気もしたが。

もしかすると、CruiseControl.NET が .NET Framework 1.1 ベース、作成しているのが .NET Framework 2.0 ベースだったのが原因かも。 CruiseControl.NET 1.3 にしたら自動的に掃除してくれるようになるかもしれない。 (今まで ASP.NET 2.0 のWebアプリが全く動いていなかったので)

λ [.NET] CruiseControl.NET 1.3 へのアップグレード作業

CruiseControl.NET 1.3をインストールしてみましたに、 「アップグレードしたときにccnet.configを上書きしなくなった」とあったので、気楽に CruiseControlNET-1.3-Setup.exe をたたく俺。 そして動かない。確かに ccnet.config はそのままだったけど

  • ccservice.exe.config は ccservice.exe.config.old に保存された上で上書きされていた
  • こちらの環境では、ccservice.exe.config が、俺設定をした ccnet.config を見るように設定してあった

という状況。なので ccservice.exe.config に俺設定(1行だけだけど) を入れてサービス再起動。 これで自動ビルドのアップグレードは完了。

で、次に http://localhost/ccnet/ が動かない。インストールの時に「virtualhost の設定を作るか→チェック外す」をしたせいかもしんないけど、 インターネットインフォメーションマネージャを使って、http://localhost/ccnet/ に割り当てられた ASP.NET のバージョンを ASP.NET 2.0 に変更して完了。

…Subversionの日本語ログが文字化けした。ぐわゎ。

svn.exe の出力文字コードの変換をバッチファイルで無理矢理かけてたのを止めたらよくなった。素直に使えるようになって非常にありがたい。

MSBuild の出力を見ようとしたらエラー発生。ググったら MSBuild.xsl Error - Unable to transform … Release 1.3 に含まれている奴はダメらしい。なんということだ。

メール内にあった解決策をやってみた。( 結果の msbuild.xsl ) これで動くようになった。 解決策に書いてあったのは以下の内容

  • 最上部の DOCTYPE で、  を   に変換するよう指示している奴を削除
  •   をすべて   に置換
  • <xsl:choose></xsl:choose> を <xsl:choose><xsl:when test="false"/></xsl:choose> に置換
[]