Развертывание NLog с приложением ClickOnce - PullRequest
2 голосов
/ 22 августа 2009

Пользователи не могут установить приложение ClickOnce. Ошибка: «Файл NLog.dll не является допустимым файлом Portable Executable (PE)». Он отлично работает на моей машине, но у меня установлен nLog. Это невозможно для клиентских машин. Есть идеи, как заставить это работать?

Ответы [ 5 ]

8 голосов
/ 12 декабря 2012

Я нашел ответ на этот вопрос, когда ваш NLog.config не будет скопирован в вашу программу, если он установлен с использованием ClickOnce.

Вам необходимо выбрать NLog.config файл в вашем Project с помощью Solution Explorer и установить его Properties следующим образом:

  • Действие создания : содержимое
  • Копировать в выходной каталог : всегда копировать

Теперь при развертывании с использованием ClickOnce файлы также должны быть скопированы! :)

7 голосов
/ 24 августа 2010

Я поместил все данные конфигурации NLog в файл App.config вместо файла NLog.config, и он сработал для меня и после развертывания с ClickOnce. Нет ошибок и ведение журнала работало на развернутом приложении.

3 голосов
/ 22 июня 2010

Проверьте ваш вариант сборки и убедитесь, что NLog.dll включен в «Файлы приложений», чтобы он был в «группе загрузки» /required.

2 голосов
/ 22 августа 2009

Если ваши сборки NLog развернуты в GAC, вы не можете (просто) включить это в настройку ClickOnce. Попробуйте развернуть их как локальные библиотеки DLL. Если это невозможно, вам потребуется отдельная программа установки (или MSI) для развертывания NLog.

0 голосов
/ 22 июня 2010

Добавьте dll в ваш проект и установите BuildAction = None, а "copy to output directory" как "not copy".

Удалите ссылку на NLog в вашем проекте. Повторно добавьте ссылку и укажите ее на dll, который вы только что добавили в проект. В свойствах ссылки установите «Копировать локально» на «true».

Теперь, когда ВЫ запускаете приложение, оно будет указывать на локальную версию, а при развертывании приложения оно будет развертывать локальную версию и указывать на нее.

Это работает для многих сторонних DLL, но не для всех. Лучше всего попробовать.

...