[解決済み] CIプラットフォーム(Hudson)でC#アセンブリのバージョンを自動インクリメントするにはどうしたらいいですか?
質問
私自身と私のグループは、アセンブリのバージョン番号を増加させるのが苦手で、頻繁に 1.0.0.0 のバージョンでアセンブリを出荷しています。 明らかに、これは多くの頭痛の種を引き起こします。
私たちは、私たちの
CI
プラットフォームでのプラクティスがかなり良くなってきています。
assemblyinfo.cs
ファイル内の値を自動的に増分し、アセンブリのバージョンがそのアセンブリ内のコードの変更によって自動的に更新されるように設定したいと思います。
私は以前 (私たちが
ハドソン
を見つける前)、値を増加させる方法を設定していました。
msbuild
またはコマンドライン(思い出せない)で値を増やす方法がありますが、Hudsonの場合、SVNリポジトリを更新して再度ビルドを起動することになります。Hudson は 1 時間ごとに SVN をポーリングするので、これは遅い無限ループになります。
Hudson にバージョン番号をインクリメントさせるのは悪い考えでしょうか。それを行うための代替方法は何でしょうか?
理想的には、私の解決策の基準は次のようなものです。
-
でのビルド番号の増加
assemblyinfo.cs
ビルドの前に - 変更されたアセンブリのビルド番号のみを増加させます。 Hudson はビルドを実行するたびにプロジェクト フォルダを消去するので、これは不可能かもしれません。
- 変更された assemblyinfo.cs をコードリポジトリにコミットします(現在は VisualSVN )
- Hudson が変更をスキャンする際に、新しいビルドをトリガーしないようにする。
しかし、私のすべてのアイデアは、Hudson が次にスキャンするときに新しいビルドをトリガーする原因となります。 私は、誰かが私のためにすべてをやってくれることを求めているわけではなく、正しい方向を示してくれるだけで、おそらく Hudson が特定の SVN コミットを無視するようにするテクニックなどです。
私がこれまでに見つけたものはすべて、バージョン番号を自動的に増加させる方法を説明した記事だけで、無限ループに陥る可能性のある CI プラットフォームを考慮したものは何もありませんでした。
どのように解決するのですか?
単純な代替案は、C# 環境がアセンブリのバージョンをインクリメントするように、version 属性に
major.minor.*
(に設定することです(AssemblyInfoファイルのテンプレートで説明されています)。
もっと包括的な解決策をお探しかもしれませんが。
EDIT (コメントでの質問に対する回答)。
から
AssemblyInfo.cs
:
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
関連
-
[解決済み] リファレンスの追加にSystem.Web.Mvcが表示されないのはなぜですか?
-
[解決済み] ネットワークの位置からアセンブリをロードすることはできません
-
[解決済み] "SSL/TLSセキュアチャネルの信頼関係を当局と確立できませんでした "の解決方法
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] コードが含まれるアセンブリのパスを取得するにはどうすればよいですか?
-
[解決済み] アセンブリファイルのバージョンを取得する方法
-
[解決済み] クライアントにJavaScriptファイルを強制的に更新させるには?
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] WPFのStaticResourceとDynamicResourceの違いは何ですか?
-
[解決済み] HashSetとListの性能比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ファイル *.mdf をデータベースとして添付できません。
-
[解決済み] app.configのマッピングがないアセンブリのapp.configの再マッピングを考慮する。
-
[解決済み] app.configのマッピングがないアセンブリのapp.configの再マッピングを考慮する。
-
[解決済み] Visual Studioの "ターゲットフレームワーク "が見つからない
-
[解決済み] SQL Server Compact EditionデータベースのLINQ to SQLで、"Row not found or changed "例外を解決するにはどうすればよいですか?
-
[解決済み] asp.netでWebサービスのタイムアウト時間を長くする方法は?
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?
-
[解決済み] System.Timers.Timer vs System.Threading.Timer
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法