私はMSBuild Community Task libraryを使用して、現在のSVNバージョンを取得して、最終的にコンパイルされたDLLのリビジョンを取得するためのAssemblyInfoファイルを取得します。MSBuildコミュニティタスクライブラリを使用して.NET DLLのSVNバージョン番号を正しく設定する方法
あなたが知っているように、SVNバージョンは「28」や「28M」のようになります。 MSBuildメッセージを出力してRevisionプロパティを出力すると、変更後に28Mが得られますが、AsseblyInfoを更新すると、バージョン番号では28だけが取得されます。
私はバージョン番号にdllが非チェックインの変更を使って構築されていることを示すために28Mを持っています。私はそれをどのように働かせることができますか?
<Target Name="Compile">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SvnTool)">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<ItemGroup>
<AssemblyInfoFiles Include="x.a\Properties\AssemblyInfo.cs" />
<AssemblyInfoFiles Include="x.b\Properties\AssemblyInfo.cs" />
</ItemGroup>
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="$(MajorVersion).$(MinorVersion).$(Revision).0" />
<MSBuild Projects="$(MSBuildProjectDirectory)\ConfigExplorer.sln" Targets="Rebuild" Properties="Configuration=$(BuildType);" />
バージョンクラスでリビジョンが 'int'と宣言されているため、リビジョン番号として28Mを持つことはできません: 'public int Revision {get; } '。しかし、あなたは好きなテキストを保存する代わりに、例えばAssemblyInformationalVersionAttribute属性を使うことができます。 –