5

AssemblyInfo.cs ファイルに DateTime.Now.Year を介して現在の年を含める可能性はありますか?

私が試してみました:

[assembly: AssemblyCopyright("Copyright " + DateTime.Now.Year)]

しかし、引数は定数式しかないようです。

4

5 に答える 5

6

これは自動化できますが、ビルド前に AssemblyInfo.cs ファイルを操作する方法を使用する必要があります。

しかし、これを行う必要がありますか?

コードを再構築しても、著作権の期間は再開されません。著作権が現在 2009 年である場合、後の年に大幅な*コード変更を行わない限り、現在の年に関係なく 2009 年のままにする必要があります。

*「重大」の値については、ソフトウェア開発者ではなく、弁護士に相談する必要があります。

于 2009-12-30T12:35:25.083 に答える
4

前述のとおり、定数ではない属性に値を入れることはできません。DateTime.Nowは定数値ではないため、属性では使用できません。

特にこの動作が必要な場合は、日付をファイルに挿入するプリコンパイル手順をスクリプトに追加できます。

個人的には、年が変わる速度を考えると、これを行うための自律的なタスクの作成に費やす時間は不十分です。アセンブリ情報に「2009」が含まれるプロジェクトが多数あります。私のリストには、新年に完了するタスクがあり、正規表現ツールを実行して、AssemblyInfo.cs ファイル内の「2009」のすべてのインスタンスを検索して「2010」に置き換えます。

これは、ビルド プロセスへの統合よりもはるかに少ない作業であると思います。

于 2009-12-30T12:23:36.853 に答える
3

.NET では属性に定数式のみが含まれる可能性があるため、これは不可能です。ファイルを変更して現在の年を挿入するコンパイル前のステップを使用できます。

于 2009-12-30T12:13:15.440 に答える
1

AssemblyInfo.cs ファイルで @ {0} Microsoft を使用し、サーバー側で string.Format を使用して {0} を現在の年の値に置き換えます。

于 2010-01-29T10:01:54.947 に答える
1

テンプレートファイルを使用して可能です。次のスレッドで私の答えを見てください

アセンブリ情報に現在の年を動的に表示する

于 2013-10-11T09:40:03.820 に答える