我有一个使用log4net的项目,可以在开发者计算机上正常运行。构建时,构建脚本中的一个步骤调用AssemblyInfo任务来设置版本号和日期等。但AssemblyInfo文件也会丢失该行:
[assembly:XmlConfigurator(Watch = true)]
有没有办法让AssemblyInfo任务不覆盖该行,或者相反,让AssemblyInfo任务重新插入该行(以及相应的using语句?
答案 0 :(得分:2)
您实际上可以将log4net [assembly:...]行放在任何将编译到程序集中的文件中。很多时候,我们只是将它放在具有“main”方法的.cs文件中,并且它的工作正常。
答案 1 :(得分:1)
嗯,想一点不同,你不必只有一个汇编信息文件。
这就是我们为解决方案所做的工作,每个项目都有3个汇编信息文件:
AssemblyInfo.cs - 包含Guid,AssemblyTitle,AssemblyDescription和任何特定于程序集的属性。
ProductAssemblyInfo.cs - 包含AssemblyProduct,AssemblyVersion和AssemblyFileVersion。这样,产品/解决方案中的所有程序集都共享相同的版本。
CompanyAssemblyInfo.cs - 包含AssemblyCompany,AssemblyCopyright以及我们希望所有程序集共享的任何属性。
使用“添加为链接”引用项目2和3,这样它们就可以从单个源代码共享。现在,您可能不想采用相同的方法,但您当然可以使用类似的结构,并将XmlConfigurator放在与程序集版本详细信息不同的汇编信息文件中。