4

私はこれに似AssemblyFileVersionた使用コードを読んでいますが、セキュリティ上の制限のために(またはアセンブリ名前空間のメソッド)を使用できなくなりました。Assembly.GetExecutingAssembly

(余談ですが、これはSharePoint Onlineによって課せられたセキュリティ制限であり、アップロード時にアセンブリの問い合わせを行い、フレームワークの特定の禁止された部分を使用すると拒否します)

では、アセンブリファイルバージョンを取得する他の方法はありますか?

いいえと思いますが、AssemblyInfo.csのAssemblyFileVersion属性をリソースファイルや定数などに入れて、GetExectingAssemblyを使用せずに実行時にアクセスできるようにする方法はありますか?

4

1 に答える 1

8

これが私が思いついたものです。醜いが、AssemblyFileVersion をリソース ファイルに書き出すための MSBuild トリックなしで、目標 (AssemblyFileVersion が定義されている単一の場所) を満たしています。

ファイル: AssemblyInfo.cs

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("MyProject")]
...
[assembly: AssemblyFileVersion(MyProject.AssemblyInfo.AssemblyFileVersion)]

namespace MyProject
{
    static internal class AssemblyInfo
    {
        /// <summary>
        /// The AssemblyFileVersion of this web part
        /// </summary>
        internal const string AssemblyFileVersion = "1.0.3.0";
    }
}
于 2012-10-17T13:23:34.757 に答える