(ここで用語が混同されていたらすみません。私は Java 開発者で、.Net と C# は初めてです。必要に応じて、この質問にタグを追加/修正してください。)
プロジェクトのビルドに MSBuild スクリプトを使用しています。タスクの 1 つは、アセンブリ情報を書き込むことです。
<Target Name="UpdateAssemblyInfo">
<Message Text="Updating assemblies to file version $(AssemblyVersion) ($(AssemblyFileVersion))" Importance="high"/>
<AssemblyInfo CodeLanguage="CS"
OutputFile="SharedAssemblyInfo.cs"
AssemblyVersion="$(AssemblyVersion)"
AssemblyFileVersion="$(AssemblyFileVersion)"
AssemblyProduct="SVN revision $(BUILD_NUMBER)"/>
</Target>
これは次のように変換SharedAssemblyInfo.cs
されます。
[assembly: System.Reflection.AssemblyVersion("0.0.0")]
これに:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18063
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: System.Reflection.AssemblyVersion("1.4.0")]
[assembly: System.Reflection.AssemblyFileVersion("1.4.0.85725")]
[assembly: System.Reflection.AssemblyProduct("SVN revision 85725")]
ここまでは順調ですね。ただし、TeamCity のビルド ログに次のメッセージが表示されます。
CSC 警告 CS1607: アセンブリ生成 -- 'ファイル バージョン' に指定されたバージョン '1.4.0.85725' は、通常の 'major.minor.build.revision' 形式ではありません
バージョンの形式が警告メッセージで指定された形式に従っているように見えるのに、なぜこの警告が表示されるのですか?