2009-04-07 3 views
1

У меня есть проект, который использует log4net и отлично работает на машинах разработчика. Когда мы строим, шаг в наших сценариях сборки вызывает задачу AssemblyInfo, чтобы установить номера версий и дату и т.д., но файл AssemblyInfo также теряет строку:Настройка Log4NET, перезаписанная AssemblyInfo Task

[сборка: XmlConfigurator (Watch = истина)]

Есть ли способ, чтобы задача AssemblyInfo не перезаписывала эту строку или, наоборот, чтобы задача AssemblyInfo повторно вставляла эту строку в файл (вместе с соответствующей операцией использования?

ответ

1

Ну, думая немного по-другому, вы не обязательно иметь только один информационный файл сборки.

Так мы делаем это для золя социологическое загрязнение, каждый проект имеет 3 сборочные информационные файлы:

  1. AssemblyInfo.cs - содержит Guid, AssemblyTitle, AssemblyDescription, и любые сборочные определенные атрибуты.

  2. ProductAssemblyInfo.cs - Содержит AssemblyProduct, AssemblyVersion и AssemblyFileVersion. Таким образом, все сборки в продукте/решении имеют одну и ту же версию.

  3. CompanyAssemblyInfo.cs - содержит AssemblyCompany, AssemblyCopyright и любые атрибуты, которые мы хотим, чтобы все наши сборки делились.

Элементы 2 и 3 ссылаются на «Добавить в качестве ссылки», таким образом, они используются совместно с одним исходным кодом. Теперь вы можете не захотеть использовать тот же подход, но вы, безусловно, можете использовать аналогичную структуру и поместить свой XmlConfigurator в отдельный файл информации об ассемблере из деталей вашей сборки.

+0

Awesome! Благодаря! – 2009-04-07 15:15:59

2

Вы можете поместить строку log4net [assembly: ...] в любой файл, который будет скомпилирован в сборку. Много раз мы просто помещаем его в файл .cs, который имеет «основной» метод, и он работает отлично.

+0

+1. Или в приложении Global.asax.cs для приложения ASP.NET. – devstuff

Смежные вопросы