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