4

我一直在阅读与此类似的AssemblyFileVersionusing 代码,但由于安全限制,无法再使用(或 Assembly 命名空间中的任何方法)。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 回答