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