在单一项目(visual studio)的AssemblyInfo.cs
文件中,有一组属性,这些属性填充了归因于项目的各种值。一个例子:
[assembly: AssemblyTitle("AssemblyTitle")]
[assembly: AssemblyDescription("AssemblyDescription")]
[assembly: AssemblyConfiguration("AssemblyConfiguration")]
[assembly: AssemblyCompany("AssemblyCompany")]
[assembly: AssemblyProduct("AssemblyProduct")
我遇到了一个示例,其中汇编信息已合并到项目主类文件的主.cs
文件中。我意识到这样做是为了简洁和易于演示。
当我最初运行项目时,由于重复定义而导致错误,但是,在检查时,定义略微不同。
[assembly: AssemblyTitleAttribute("AssemblyTitle")]
[assembly: AssemblyDescriptionAttribute("AssemblyDescription")]
[assembly: AssemblyVersionAttribute("1.0.*")]
[assembly: AssemblyCopyrightAttribute("AssemblyCopyright")]
这些属性后来被用于:
using System.Reflection;
static public class AboutDialogExample
{
public static void Main()
{
Application.Init();
AboutDialog about = new AboutDialog();
Assembly asm = Assembly.GetExecutingAssembly();
about.ProgramName = (asm.GetCustomAttributes( typeof(AssemblyTitleAttribute), false)[0] as AssemblyTitleAttribute).Title;
about.Comments = (asm.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false)[0] as AssemblyDescriptionAttribute).Description;
about.Copyright = (asm.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0] as AssemblyCopyrightAttribute).Copyright;
我意识到他们必须翻译成同样的东西,但在努力解决原因时,我只是不明白其中的差异。
我从本地文件中的Attribute
定义中移除了assembly
部分,这没有任何区别,尽管在typeof
表达式中,这是一个构建错误,显然并没有这样做。编译。
(其中Xxx
只是汇编集中的任意属性)