質問

プロジェクト用にcruisecontrol.net csを設定しました。これには、ビルドマシン上の日付ごとにビルドしてフォルダーに保存される多数のモジュールとコンポーネントがあります。問題は、アプリケーションのセットアップを行う必要があることです( wpf non web)とは、多くのモジュールとさまざまなソリューションが構築され、最終的に製品(dll)などを作成するため、夜間のセットアップを作成し、セットアップも行うセットアップ戦略を提案することです使用するパッケージ(より単純なもの、またはより時間がかかるもの)ビルドマシンに何かをインストールして、フォルダー(どのフォルダー?)からファイルを取得し、セットアップを行うことを計画していました...

要点を説明するリンクは、 Firefoxのナイトリービルド。

アドバイスはこちら

事前に感謝します。

役に立ちましたか?

解決

このシステムは私にとって非常にうまく機能していることがわかりました。 VS 2005/2008とC#を想定していますが、他のコンパイラーや言語でも同じ原理が機能し、独自のフレーバーに置き換えるだけです。

CC.NETの使用

  • 複数の場所で使用されている場合は、scheduleTriggerですべてのソースをチェックアウトします
  • MSBuildを使用して、必要な各ソリューション(VS 2005/2008を想定)、nant、またはコンポーネントプロジェクトのコンパイルに最適なビルドツールをビルドします
  • MSBuildを使用してWIXインストーラーを作成しますが、MSBuildを使用してInnoSetupおよびWise Installation Studioのインストールを作成しました
  • MSBuildを使用して、ビルドスクリプトで制御するプロジェクトのAssemblyInfo.csファイルを更新します
  • ソース管理コマンドラインを使用して、更新されたAssemblyInfo.caファイルをチェックインします
  • 最後にMSBuildを使用して、出力インストーラーをドロップサーバーの新しいフォルダーにコピーします。プライマリ製品の実行可能ファイルのタイムスタンプを使用して、生成されたバージョン番号とともにタイムスタンプを作成し、フォルダーに名前を付けます(../Builds/Product/v.M.m.r.p-DATE TIME /)

また、最後にビルド通知メールを生成します。

インストーラーの推奨事項に関しては、トレードオフがあります。

生成を高速化するには、NSISやInno Setupなどのスクリプトインストーラーを使用します。欠点は、Windowsインストーラーと互換性がないことです。

Windowsインストーラ製品の場合、WiseまたはInstallShieldを使用すると最初の生成が高速になりますが、高価なツールであり、インストールスクリプトのメンテナンスが高いことがわかります。 WIXの使用は、最初ははるかに高価になる傾向がありますが(学習曲線+山括弧税)、すべてXMLであり、コマンドラインツールが使いやすいため、保守が容易です。

Windowsインストーラーのバンドルとチェーン(少なくともWindows XPの場合)は非常に苦痛なので、Inno Setupでのインストールバンドルである程度成功しました。

他のヒント

インストーラーの作成に Visual Build とWiseを使用し、非常に直感的で簡単セットアップを作成します。実際のCC.NETプロジェクトはいくつかのことを行います。まず、最後にインストーラーを作成してから必要なすべてのパーツが正常にビルドされていることを確認します(オンデマンドでインストーラーを許可し、毎晩スケジュールすることもできます)。それらが正常にビルドされていない場合、すべてのコンポーネントを再ビルドします。コンポーネントが正常にビルドされた場合(または既にビルドされている場合)、VisualBUildProを呼び出してインストーラーを作成します。 Visual Build Proは、実際のインストーラーのすべてのコピーとWiseの呼び出しを処理します。インストーラーが作成されたら、誰もが期待する宛先に公開します。また、ビルドサーバー上の電子メールパブリッシャーのXSLを変更したため、最新のインストーラーが公開されると、誰もがリンクを取得できます。

シンボルサーバーをセットアップして、すべてのインストーラーにソースコード情報を含むシンボルをアップロードしてもらうことができる場合は、ナイトリービルドに関するいくつかのことを行います。これは、任意のドキュメント(D'Oxygen、SandCastle)を作成し、利用可能な完全なテストスイートを実行する時間があることも良い点です。

WiX をご覧ください。このツールセットを使用すると、セットアッププロジェクトをXML形式で定義し、このXMLからmsiを生成できます。プロジェクトがXMLで定義されているという事実は、ビルド中に必要に応じてこのXMLをオンザフライで変更する柔軟性を提供します。

MSBuildと統合します-この記事を参照してください。また、 NAntでうまく機能します-この記事を参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top