Я пишу этот код в консольном приложении, ориентированном на клиентский профиль .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,
Culture = нейтрально, PublicKeyToken = 407dd0808d44fbdc»
в System.Type - может быть, тип не может
быть найденным
Это связано с тем, что сборка Castle.Services.Logging.log4netIntegration не копируется в выходную папку. Как зависимость только во время выполнения, это не нарушает сборку.
Глядя на процесс сборки, я обнаружил, что он не копирует log4net или сборку средства Castle, поскольку они зависят от System.Web, который недоступен в профиле клиента. Изменение стандартного профиля означает, что эта зависимость доступна и средство может быть добавлено.
Почему это должно быть сделано? Какая разница, что я не нацеливаюсь на профиль клиента в консольном приложении, предназначенном для использования в качестве запланированной задачи на сервере?