1

我有一个使用 log4net 并且在开发人员机器上运行良好的项目。当我们构建时,我们的构建脚本中的一个步骤调用 AssemblyInfo 任务来设置版本号和日期等。但是 AssemblyInfo 文件也丢失了这一行:

[程序集:XmlConfigurator(Watch = true)]

有没有办法让 AssemblyInfo 任务不覆盖该行,或者相反,让 AssemblyInfo 任务将该行重新插入文件中(以及适当的 using 语句?

4

2 回答 2

2

您实际上可以将 log4net [assembly: ...] 行放在将编译到程序集中的任何文件中。很多时候,我们只是将它放在具有“main”方法的 .cs 文件中,它就可以正常工作。

于 2009-04-09T07:56:29.833 回答
1

好吧,换个思路,您不必只有一个程序集信息文件。

这就是我们为解决方案做的方式,每个项目都有 3 个程序集信息文件:

  1. AssemblyInfo.cs - 包含 Guid、AssemblyTitle、AssemblyDescription 和任何程序集特定属性。

  2. ProductAssemblyInfo.cs - 包含 AssemblyProduct、AssemblyVersion 和 AssemblyFileVersion。这样,产品/解决方案中的所有程序集都共享相同的版本。

  3. CompanyAssemblyInfo.cs - 包含 AssemblyCompany、AssemblyCopyright 以及我们希望所有程序集共享的任何属性。

使用“添加为链接”引用项目 2 和 3,这样它们可以从单一源代码共享。现在,您可能不想采用相同的方法,但您当然可以使用类似的结构并将您的 XmlConfigurator 放在与您的程序集版本详细信息不同的程序集信息文件中。

于 2009-04-07T14:57:50.883 回答