我正在向.NET应用程序添加一个About对话框,我正在查询程序集的属性以显示信息.当我尝试AssemblyVersionAttribute使用GetCustomAttribute()它来检索我的程序集时返回null:
// Works fine
AssemblyTitleAttribute title
= (AssemblyTitleAttribute)Attribute.GetCustomAttribute(
someAssembly, typeof(AssemblyTitleAttribute));
// Gets null
AssemblyVersionAttribute version
= (AssemblyVersionAttribute)Attribute.GetCustomAttribute(
someAssembly, typeof(AssemblyVersionAttribute));
Run Code Online (Sandbox Code Playgroud)
我AssemblyInfo.cs觉得很好.我定义了这些属性:
[assembly: AssemblyTitle("Some Application")]
[assembly: AssemblyVersion("1.0.0.0")]
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我有一个解决方法,但我想知道为什么上面的代码不起作用.
// Work-around
string version = someAssembly.GetName().Version.ToString();
Run Code Online (Sandbox Code Playgroud) 我想从我的C#类库中的WinForm项目中获取AssemblyCompany属性.在WinForms中,我可以使用以下方式获取此信息:
Application.CompanyName;
Run Code Online (Sandbox Code Playgroud)
但是,我似乎找不到使用类库获取相同信息的方法.你能提供的任何帮助都会很棒!
我在一个解决方案中有许多AssemblyInfo.cs文件作为许多项目的一部分,我作为TeamCity的一部分自动构建.
为了使msbuild脚本更易于维护,我希望能够将AssemblyInfo社区任务与ItemGroup结合使用,例如
<ItemGroup>
<AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>
<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)"
ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)"
AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="@(AllAssemblyInfos)" />
Run Code Online (Sandbox Code Playgroud)
由于OutputFile不能是引用的ItemGroup,因此它无法正常工作.
有谁知道如何使这项工作?