Публикация приложения на C # в .NET с log4net? - PullRequest
2 голосов
/ 29 августа 2011

Я написал свое первое приложение на C # .NET WinForms и готов опубликовать первую сборку для пользователей, чтобы установить.Я использую log4net в качестве своей утилиты регистрации, и она имеет значение:

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\"/>
    <param name="AppendToFile" value="true"/>
    <param name="DatePattern" value="yyyy-MM-dd' Log.txt'" />
     // etc

Однако, когда я создаю свое приложение, ничего не регистрируется.Во время работы в Visual Studio все идет к /bin/Debug/Logs/yyyy-MM-dd Log.txt.

Как мне указать, куда должна быть установлена ​​моя программа и какой должен быть рабочий каталог?

Имейте в виду, что эта программадовольно минимальный (<6K строк кода), и я действительно не знаю разницы во всех типах публикаций в визуальной студии.Я просто хочу распространять .exe своим пользователям и отслеживать ошибки в каталоге, таком как <code>C:\Program Files\myapp.Что я делаю не так?

РЕДАКТИРОВАТЬ: Когда я щелкаю правой кнопкой мыши программу и открываю Свойства из проводника решений, я устанавливаю следующие параметры (которые могут быть неправильными, яникогда не делали этого раньше):

  1. Сборка -> Все конфигурации -> Путь вывода: C:\Program Files\myapp\bin\
  2. Отладка -> Все конфигурации -> Рабочий каталог: C:\Program Files\myapp\bin\
  3. Публикация -> Расположение публикации: C:\Program Files\myapp\Publish\
  4. Мастер публикации -> Расположение публикации: C:\Program Files\myapp\Publish\
  5. Мастер публикации -> С компакт-диска или DVD-диска
  6. Мастер публикации -> Приложение не будет проверять наличие обновлений

Эти настройки верны или я что-то напортачил?Я хотел бы, чтобы пользователю было предложено указать место установки (по умолчанию: C: \ Program Files \ myapp), и это местоположение всегда будет использоваться для рабочего каталога (поэтому я знаю, где находится файл журнала).Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Поскольку вы используете Click Once для развертывания, приложение не будет находиться в типичном каталоге C:\Program Files\myapp.

Vista и Windows 7:

C:\Users\<UserName>\AppData\Local\Apps\2.0\<obscure foler>\<obscure folder>

Windows XP:

C:\Documents and Settings\<UserName>\LocalSettings\Apps\2.0\<obscure foler>\<obscure folder>

Покопайтесь в этих каталогах, и вы увидите файлы log4net.

Редактировать Альтернативой развертыванию Click Once является установщик Visual Studio: Пошаговое руководство. Развертывание приложения для Windows .Это позволит вам установить приложение в стандартный каталог C:\Program Files\myapp.

Я бы порекомендовал вам создать несколько фиктивных проектов с помощью установщика, чтобы немного ознакомиться с различными параметрами.Первоначально создание MSI с помощью установщика может показаться сложным, если вы не использовали его ранее;после некоторого использования установщик VS станет довольно простым в использовании.

Другим предложением будет проверка ваших установщиков на виртуальной машине, чтобы вы ничего не делали случайно в вашей личной среде.

1 голос
/ 29 августа 2011

При запуске в Visual Studio файлы журналов записываются в папку Debug, поскольку там находится исполняемый файл.

Когда вы устанавливаете приложение на C:\Program Files\myapp (или где-либо еще), журналы будут создаваться относительно этого местоположения и должны быть в C:\Program Files\myapp\Logs/yyyy-MM-dd Log.txt - при условии, что у пользователя есть права на создание каталогов и файлов в этом месте.

Самый простой способ доказать это - установить приложение и запустить его. Затем проверьте, где создан файл журнала.

...