Я пишу этот код в консольном приложении, предназначенном для клиентского профиля .NET Framework 4.
this.container.AddFacility<LoggingFacility>(
f => f.LogUsing(LoggerImplementation.Log4net));
При запуске происходит сбой с ошибкой преобразования типа.
Не удалось преобразовать из 'Castle. Services.Logging.Log4netIntegration.Log4netFactory, Castle.Services.Logging.Log4netIntegration, Версия = 2.5.1.0, Культура = нейтральный, PublicKeyToken = 407dd0808d44fbdc ' в System.Type - Возможно, тип не может be found
Это связано с тем, что сборка Castle.Services.Logging.log4netIntegration не копируется в папку вывода. Поскольку это зависимость только во время выполнения, это не нарушает сборку.
Глядя на процесс сборки, я обнаружил, что он не копировал log4net или сборку средства Castle, потому что они зависят от System.Web, который недоступен в Профиль клиента. Переход к стандартному профилю означает, что эта зависимость доступна и средство может быть добавлено.
Почему это нужно сделать? Какая разница, что я не нацеливаюсь на профиль клиента в консольном приложении, предназначенном для использования в качестве запланированной задачи на сервере?