【问题标题】:Log4NET setting overwritten by AssemblyInfo Task由 AssemblyInfo 任务覆盖的 Log4NET 设置
【发布时间】:2009-04-09 16:00:35
【问题描述】:

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

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

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

【问题讨论】:

    标签: msbuild log4net assemblyinfo


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        • 2019-01-23
        • 2018-06-26
        • 1970-01-01
        • 1970-01-01
        • 2016-09-30
        • 1970-01-01
        相关资源
        最近更新 更多