0

AssemblyInfo.cs で使用 [assembly: AssemblyVersion("1.1.*")]すると、ビルド番号とリビジョン番号が意味のある値に置き換えられることがわかります。しかし、これらの値を別の場所で取得する方法はありますか? AssemblyVersion を安定した状態に保ちたいのですが、これらの値をアセンブリのどこかに焼き付けることができます。

PE ヘッダーからデータを抽出するトピックを見つけましたが、邪魔にならないものを好みます。

4

2 に答える 2

1

私が通常使用するアプローチはAssemblyInfo.cs、開始点ではなく、そのようなバージョン番号のエンドポイントとして扱うことです。

したがって、ビルド プロセス (CI システムなど) によって自動生成または変更されるファイルから始めます。

public static class BuildNumber
{
    public const string Build = "<<git branch>>";
    public const string Revision = "<<CI build number>>";
}

次に、すべてのバージョン情報を保持するバージョン クラスがあります。

public static class Versions
{
    public static int Major { get { return Convert.ToInt32(MajorString); } }
    public static int Minor { get { return Convert.ToInt32(MinorString); } }
    public static int Build { get { return Convert.ToInt32(BuildNumber.Build); } }
    public static int Revision { get { return Convert.ToInt32(BuildNumber.Revision); } }

    public const string AssemblyVersion = MajorString + "." + MinorString + "." +
        BuildNumber.Build + ". " + BuildNumber.Revision;

    private const string MajorString = "1";
    private const string MinorString = "2";
}

最後に、以下をAssemblyInfo.csファイルに入れます。

[assembly: AssemblyVersion(Versions.AssemblyVersion)]

そうすれば、バージョン情報もコード内で利用できるようになります。

于 2013-10-29T14:04:13.803 に答える
0

AssemblyFileVersion - http://support.microsoft.com/kb/556041の Microsoft KB を参照してください。

AssemblyVersion と同じ方法で使用されます。

[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")] 

AssemblyVersion は厳密な命名などのために GAC によって使用されますが、AssemblyFileVersion は使用されません。

于 2013-10-29T13:43:59.397 に答える