我有一个 asp.net Web 应用程序,它在其网络内的不同客户服务器上部署了多个版本。我们的一种做法是让客户在遇到问题时通过电子邮件发送屏幕截图。
在旧的 asp.net 1.1 时代,我们可以使用反射获取构建 DLL 的详细信息,并在屏幕上的一个微妙位置显示有关构建日期和编号的信息。
在 .NET 2.0 及更高版本中,构建模型发生了变化,这种机制不再有效。我听说过不同的构建系统,但我真的在寻找最简单的方法,在 3.5 框架上,做这个功能在框架 1.1 上所做的。
最佳答案
我们正在使用 .Net 2.0 并从程序集中提取版本信息。也许不理想,但我们使用描述来存储构建日期。
Assembly assembly = Assembly.GetExecutingAssembly();
string version = assembly.GetName().Version.ToString();
string buildDate = ((AssemblyDescriptionAttribute)Attribute.GetCustomAttribute(
assembly, typeof(AssemblyDescriptionAttribute))).Description;
构建过程使用 asminfo nant 任务生成包含此信息的 AssemblyInfo.cs 文件。
<asminfo output="Properties\AssemblyInfo.cs" language="CSharp">
<imports>
<import namespace="System" />
<import namespace="System.Reflection" />
<import namespace="System.Runtime.CompilerServices" />
<import namespace="System.Runtime.InteropServices" />
</imports>
<attributes>
<attribute type="AssemblyVersionAttribute" value="${assembly.version}" />
<attribute type="AssemblyInformationalVersionAttribute" value="${assembly.version}" />
<attribute type="AssemblyDescriptionAttribute" value="${datetime::now()}" />
...
</attributes>
</asminfo>
关于ASP.NET - 在屏幕底部显示应用程序构建日期/信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/324245/