3

Visual Studio 2005 に .net 2.0 C# アプリケーションがあり、アプリケーションのビルド日を推測できる番号を含む正しいバージョンのビルド番号を自動的に生成したいと考えています。Microsoftの「AssemblyInfo Task」
ツール を使用しようとしましたが、デフォルトではこのツールは機能しません。今日では、最大の 65535 を超えるビルド番号「090227」が生成されるため、エラーが発生します。 2009 年 1 月 1 日の 09001 のように、年と日を含むビルド番号を使用することもできます... この問題の解決策を知っていますか? この 'AssemblyInfo Task' のソース コードを更新する必要がありますか、または VS2008 などでこれを達成することは可能でしょうか? ご協力いただきありがとうございます。




4

3 に答える 3

3

msbuildtasksを見たいと思うでしょう。これは、msbuild タスクのオープン ソース セットです。モジュールには、ビルド番号をインクリメント/変更/etc するタスクがあります。また、非常に使いやすく、拡張も非常に簡単です。

于 2009-02-27T17:08:29.247 に答える
2

VS/C#/msbuild によって生成されるデフォルトの自動ビルド番号は 1.1.2000 からの日数であり、リリース番号は午前 0 時からの 2 秒単位の増分であるため、ビルドの日付と時刻をこのように逆算して計算できます。 :

new DateTime(2000, 1, 1).AddDays(assemblyName.Version.Build).AddSeconds(assemblyName.Version.Revision*2)
于 2009-04-08T12:17:50.103 に答える
1

msbuildtasksは私の問題を解決しませんでした。説明で説明したように、特別なフォーマットが必要です。また、msbuildtasks のドキュメントも充実しています...探してみてください。必要に応じて新しいインクリメント タイプ 'YearAndDay' を追加して、AssemblyInfo タスク
のソース コードを変更しました。

case IncrementMethod.YearAndDay:
{
    DateTime dDate = DateTime.Now;
    long buildNumber = dDate.Year % 2000 * 1000;
    buildNumber += dDate.DayOfYear;
    string newVersionNumber = buildNumber.ToString();
    Log.LogMessage(MessageImportance.Low, logMessage, newVersionNumber);
    return newVersionNumber;
}

最も簡単な解決策のようでした。

于 2009-03-04T09:26:46.273 に答える