什么是使用Assembly Attributes的最佳实践?
我有多个项目的解决方案。 我试图通过链接一个解决方案宽的程序集信息文件来优化AssemblyInfo.cs文件。 这样做的最佳做法是什么? 哪些属性应该在解决方案的宽文件中,哪些属于项目/程序集特定的?
编辑:如果你有兴趣有一个后续问题AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别?
我们使用名为GlobalAssemblyInfo.cs的全局文件和名为AssemblyInfo.cs的本地文件。 全局文件包含以下属性:
[assembly: AssemblyProduct("Your Product Name")]
[assembly: AssemblyCompany("Your Company")]
[assembly: AssemblyCopyright("Copyright © 2008 ...")]
[assembly: AssemblyTrademark("Your Trademark - if applicable")]
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
[assembly: AssemblyVersion("This is set by build process")]
[assembly: AssemblyFileVersion("This is set by build process")]
本地AssemblyInfo.cs包含以下属性:
[assembly: AssemblyTitle("Your assembly title")]
[assembly: AssemblyDescription("Your assembly description")]
[assembly: AssemblyCulture("The culture - if not neutral")]
[assembly: ComVisible(true/false)]
// unique id per assembly
[assembly: Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")]
您可以使用以下过程添加GlobalAssemblyInfo.cs:
就我而言,我们正在构建一个产品,我们拥有一个Visual Studio解决方案,并在各自的项目中包含各种组件。 共同的属性去。 在该解决方案中,大约有35个项目和一个常用程序集信息(CommonAssemblyInfo.cs),它具有以下属性:
[assembly: AssemblyCompany("Company")]
[assembly: AssemblyProduct("Product Name")]
[assembly: AssemblyCopyright("Copyright © 2007 Company")]
[assembly: AssemblyTrademark("Company")]
//This shows up as Product Version in Windows Explorer
//We make this the same for all files in a particular product version. And increment it globally for all projects.
//We then use this as the Product Version in installers as well (for example built using Wix).
[assembly: AssemblyInformationalVersion("0.9.2.0")]
其他属性,例如AssemblyTitle,AssemblyVersion等,我们以每个装配为基础提供。 构建程序集时,AssemblyInfo.cs和CommonAssemblyInfo.cs都内置到每个程序集中。 这给了我们两全其美的世界,您可能想要为所有项目设定一些共同属性,并为其他项目设定特定的值。
希望有所帮助。
@JRoppert提供的解决方案与我所做的几乎相同。 唯一的区别是我在本地AssemblyInfo.cs文件中放置了以下行,因为它们随每个程序集的不同而不同:
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
[assembly: AssemblyVersion("This is set by build process")]
[assembly: AssemblyFileVersion("This is set by build process")]
[assembly: CLSCompliant(true)]
我还(通常)为每个解决方案使用一个常见组件信息,假设一个解决方案是单个产品线/可发布产品。 常见的程序集信息文件也有:
[assembly: AssemblyInformationalVersion("0.9.2.0")]
它将设置Windows资源管理器显示的“ProductVersion”值。
链接地址: http://www.djcxy.com/p/37689.html上一篇: What are the best practices for using Assembly Attributes?