9

社内アプリの大部分は、Ant を使用して Java EE スタック上に構築され、WAR ファイルを使用して Tomcat にデプロイされます。本番環境向けの WAR を作成するビルド ボックスがあり、WAR はテスト環境に配信されます。デプロイされた Web アプリケーションをテスト データ環境を指すように変換するスクリプトが実行されます。

テスト -> バグ修正 -> ビルド -> テストへの再デプロイを数回繰り返した後、WAR ファイルは本番環境にデプロイされ、ライブになります。

最近、いくつかの ASP.NET 4.0 Web アプリケーションを継承しましたが、それらのビルド/デプロイはまったく異なります。コードは VS でビルドされ、プロジェクト ディレクトリ全体が各環境にコピーされます。その後、手動で微調整され、サーバー上の VS インスタンスで再構築されることがあります。

1 つの環境での微調整が忘れられる機会がたくさんあるため、これは少し怖いことです。そのため、アプリが「ライブ」になった後、テストやバージョン管理の範囲外でアプリをいじる必要があります。等

.NET の世界に Ant/WAR メカニズムに相当するものはありますか? .NET webapp から実行可能なアーティファクトを作成し、最小限の変更で環境間で移動する最も安全な方法は何ですか? 「ベスト プラクティス」がタブー フレーズであることは承知していますが、Ant を .NET でリメイクする前に、専門知識に浸りたいと思います。:-)

4

1 に答える 1

10

Web 展開を自動化するために知っておく必要がある 3 つのテクノロジ:

  1. MSBuild - これは Microsoft の ANT に相当します。プロジェクト ファイルは、基本的に単なる一連の MSBuild タスクです。
  2. WebDeploy - これは基本的に WAR/Tomcat と同等ですが、デプロイ パッケージを作成し、IIS を対象としています。
  3. XML 変換-手動で構成を手動で編集する必要はありません。展開する必要がある環境が複数ある場合、構成変換は不可欠です。

これらすべてをお気に入りのビルド サーバー (私は Jenkins を使用しています) と組み合わせれば、あらゆる環境へのデプロイ プロセス全体を完全に自動化できます。これらの個々のトピックは広すぎて、ここで詳しく説明することはできませんが、それぞれについて最小限の知識で始めることができるはずです。

いかに簡単かを示すために、Web サイトを 2003/IIS6 ボックスにデプロイするサンプル コマンド ライン ビルドを次に示します。

MSBUILD "MyWebSite.csproj" 
    /p:Configuration=Dev 
    /p:OutputPath=bin 
    /t:Rebuild 
    /p:DeployOnBuild=true 
    /p:DeployTarget=MSDeployPublish 
    /P:AllowUntrustedCertificate=True 
    /p:MSDeployPublishMethod=RemoteAgent 
    /p:MsDeployServiceUrl=http://MyDevServer    
    /p:DeployIisAppPath="Default Web Site/MyWebSite" 
    /p:username=deployUser 
    /p:password=deployPassword
于 2012-08-01T15:26:11.267 に答える