[解決済み] バージョン番号を自動でインクリメントする方法(Visual Studio)は?重複
質問
ビルド時に自動インクリメントされる整数のセットを保存したい。
int MajorVersion = 0;
int MinorVersion = 1;
int Revision = 92;
コンパイルすると、自動でインクリメントされます。
Revision
. セットアッププロジェクトをビルドするとき、それは
MinorVersion
(手動でやってもOKです)。
MajorVersion
は手動でインクリメントするのみです。
そうすれば、メニューのHelp/Aboutにバージョン番号を表示して、ユーザーに伝えることができますね。
バージョン:0.1.92
どうすれば実現できるのでしょうか?
この質問は、自動インクリメントのバージョン番号を持つ方法だけでなく、それをコードで使用する方法も尋ねており、他の回答よりも完全な回答になっています。
どのように解決するのですか?
を追加した場合
アセンブリ情報
クラスをプロジェクトに追加し
AssemblyVersion
属性の末尾をアスタリスクにするなどしてください。
[assembly: AssemblyVersion("2.10.*")]
Visual Studio は、次のように最終的な数値をインクリメントします。 これらのルール (galetsさん、ありがとうございます。完全に間違ってました!)
このバージョンをコード内で参照し、ユーザーに表示するには
reflection
. 例えば
Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
DateTime buildDate = new DateTime(2000, 1, 1)
.AddDays(version.Build).AddSeconds(version.Revision * 2);
string displayableVersion = $"{version} ({buildDate})";
知っておきたい3つの重要なゴチャゴチャ
ash999より。
また、注目すべきは、もし両方の
AssemblyVersion
と
AssemblyFileVersion
が指定されている場合は、.exeに表示されません。
BrainSlugs83さんより。
4番目の数字だけを設定することで
*
は、バージョンが常にインクリメントされないので、悪い影響を与える可能性があります。
3番目の数字は2000年からの日数です
であり、かつ
4番目の数字は午前0時からの秒数(2で割ったもの) [IT IS NOT RANDOM] です。
. したがって、ある日の深夜にソリューションをビルドし、翌日の早朝にビルドした場合、後のビルドの方が早いバージョン番号を持つことになります。私は、常に
X.Y.*
の代わりに
X.Y.Z.*
なぜなら、この方法では必ずバージョン番号が増えるからです。
Visual Studioの新しいバージョンでは、このエラーが発生します。
<ブロッククオート(2009年に始まったこのスレッド)
指定されたバージョン文字列は、決定論と互換性のないワイルドカードを含んでいます。バージョン文字列からワイルドカードを削除するか、このコンパイルで決定論を無効にしてください。
の方法については、このSOアンサーを参照してください。 決定論を排除する ( https://stackoverflow.com/a/58101474/1555612 )
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] Windows 8でVisual Studioを常にAdministratorとして実行するように強制することはできますか?
-
[解決済み] Visual Studioで、既存のディレクトリツリーをプロジェクトに追加するにはどうすればよいですか?
-
[解決済み] Visual Studio CodeとVisual Studioの違いは何ですか?
-
[解決済み】Visual Studioでコードを自動フォーマットする方法とは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] Visual Studio使用時にファイルのビルドバージョンを自動的にインクリメントすることはできますか?