7

ソース管理にSubversionを使用するasp.net/C#アプリがあります。

私のアプリは、チャームのように機能するビルドごとにAssembleVersionとAssemblyFileVersionを自動的に増やし、サイトの管理側にビルド番号を表示します。

デプロイメントを行うときにAssembleVersionとAssemblyFileVersionを追跡しますが、問題が発生して特定のバージョンにロールバックする必要がある場合、Subversionでどのリビジョンをターゲットにするかがわかりません。

私にはいくつかのアイデアがあります:

  1. 各ファイルにコメントとしてAssembleVersionを保存します
  2. コミットコメントにキーワードがあり、コミットごとにAssembleVersionに置き換えられます(それを行う方法を理解する必要があります)

ヘルプや提案をいただければ幸いです

更新: オプション「1」は実際には愚かな考えです。これは、ビルドするたびにすべてのファイルが更新済みとしてマークされ、コミットするとすべてのファイルが更新されることを意味するためです。

4

8 に答える 8

4

タグを使ってみませんか。

http://svnbook.red-bean.com/en/1.1/ch04s06.html

于 2010-07-28T11:05:30.500 に答える
4

ビルドするときは、そのビルド番号をいたるところに配置します。

  • svnのタグに入れました。
  • ビルドするすべてのアセンブリのアセンブリメタデータに配置します。
  • インストーラーのファイル名の最後に追加します。
  • デプロイした各Webページのフッターに配置しました。
  • レポートのフッターに入れました。
  • クライアントサイドアプリのスプラッシュ画面に配置しました。
  • インストーラーのウェルカム画面に表示します。

私が入れないのはコーヒーだけです。コーヒーはで飲みます。

これらすべてにより、メンテナは、Webページを表示しているのか、Explorerで構築されたアセンブリのいずれかのプロパティを表示しているのかなど、表示されているもののコードがどこから来たのかを一目で正確に知ることができます。

于 2010-07-28T11:12:20.517 に答える
3

頻繁にビルドする場合、タグはあまり役に立ちません。代わりに、svnリビジョンに基づいてアセンブリバージョンを更新する方法を見つけるかもしれませんか?ブランチ名もリビジョンを共有するため、含めてください。

また、ASP.NETページでアセンブリバージョンを抽出し、プログラムでフッターなどに印刷できるはずです。

于 2010-07-28T11:35:52.780 に答える
2

ここでは、タグ/ブランチが間違いなく推奨されるアプローチです。

AssemblyInfoにsvnリビジョン番号を(または追加で)含めることもできます。1つのアプローチは、http://msbuildtasks.tigris.orgにあるmsbuildtasksプロジェクトのAssemblyInfoタスクを使用することです

詳細については、googlemsbuildsvnリビジョンassemblyinfo

その後、特定のリビジョンをいつでもチェックアウトしたり、特定のリビジョンからブランチを作成したりできるため、タグ/ブランチなしで実行できます

于 2010-07-28T11:39:03.383 に答える
2

「リリースのために分岐」することができます。リリースビルドを作成する前に、トランクをブランチしてから、新しいブランチにリリースバージョン番号のタグを作成できます。

              + release tag
             /
            +--------------------- release branch
           /  
----------+----------------------------------------------------- trunk

これにより、SVN内のすべての個々のリリースを追跡できます。また、パッチとしてリリースされる可能性のあるリリースブランチで個別のバグ修正を行うこともできます。その後、バグ修正をトランクにマージして戻すことができます。

              +                 + patch release tag
             /                 /
            +-----------------+-+---- release branch
           /                    | merged fix into trunk...
----------+----------------------------------------------------- trunk
于 2010-07-28T11:29:52.580 に答える
2

SubversionトランクにAssembleVersionまたはAssemblyFileVersionのどちらか最も意味のあるタグを付けることができます。

デプロイ時に現在AssembleVersionとAssemblyFileVersionを追跡しているのと同じ方法で、Subversionリビジョン番号を追跡することもできます。

于 2010-07-28T11:06:14.850 に答える
2

AssemblyVersionおよびを更新した後、ソースツリーにタグを適用しますAssemblyFileVersion

于 2010-07-28T11:06:44.763 に答える
0

もう1つのオプションは、最後に変更されたリビジョンをビルド番号として使用することです。これは、ビルドするたびに自動タグ付けすることを意味します。環境変数SVN_REVISIONがあるので、hudson/jenkinsを使用すると簡単です。問題は、リビジョン数が非常に大きくなり、1.0.0.20456と1.0.0.20489についての廊下での議論が一口であるということです。

于 2011-07-27T15:12:27.113 に答える