6

SVNリポジトリから値を取得するプログラムを作成しました。次に、AssemblyFileversionをその値で更新します。

Assemblyinfo.cs内にコードを記述できないため、AssemblyFileVersionの値を更新するにはどうすればよいですか。

こんなことを成し遂げたい

..........................
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]

 SvnInfoEventArgs info;
                    Uri repoURI = new Uri("ServerAddress");
                    svnClient.GetInfo(repoURI, out info);


[assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion(String.Format("{0}.{1}.{2}. {3}",
                                          major,minor,build,info.Revision))]
4

3 に答える 3

4

ここでいくつかのビルド システムを生成しようとしていると想定しています。したがって、基本的に、AssemblyInfo.cs ファイルを svn 番号で変更する必要があります。

同じための MS Build タスクを作成できます: http://florent.clairambault.fr/insert-svn-version-and-build-number-in-your-c-assemblyinfo-fileを参照

キーワードベースの置換 (リビジョンの場合は $WCREV$) にも使用できるコマンド ライン ユーティリティ (SubWCRev) があります - http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev-example の例を参照してください。 html

最後に、カスタム コード (正規表現の検索/置換を行う) をロールアウトして、一部 (私を含む) が行ったのと同じことを行うことができます。自動的にアセンブリのリビジョンを同期します。

于 2013-01-10T09:38:19.057 に答える
1

ビルド プロセス中にこれを行う必要があります。

Visual Studio を使用しているため、既にMSBuildを使用しています。この場合、MSBuild 拡張パックにはAssemblyInfoタスクがあります。

Subversion からリビジョンを取得するために、MSBuild 拡張パックにもそのためのタスクがあります。

または、継続的インテグレーション (CI) に TeamCity を使用している場合は、「AssemblyInfo パッチャー」ビルド機能があります。他のほとんどの CI システムには、似たようなものがあると思います。

于 2013-01-10T09:37:58.483 に答える