Корпоративная библиотека не входит в проект установки

Мне нужно ваше мнение по этому поводу: возможно ли использовать dll для регистрации в корпоративной библиотеке в проекте установки?

Вот что я сделал: я создал проект установки, который будет вызывать форму Windows для установки базы данных. Когда я установил проект, он вызывал форму окна. Однако, когда я нажимаю на кнопку "Установить", кажется, что есть проблема, и я не знаю, где она. Затем отображается другое всплывающее сообщение о том, что он не может найти конфигурацию ведения журнала.

Но есть файл конфигурации для формы Windows, который включает в себя конфигурацию для логирования DLL. Я понятия не имею, где искать.

Пожалуйста, помогите мне с этим?

Ниже приведено сообщение об ошибке:

ОБНОВЛЕНИЕ Я заметил, что когда я запускаю exe-файл как есть, конфигурация ведения журнала корпоративной библиотеки работает. Но с проектом установки, он не ищет его. Любая помощь в этом?

Ниже приведен код для этого:

[RunInstaller(true)]
public partial class IPWInstaller : Installer
{
    public IPWInstaller()
    {
        InitializeComponent();
    }

    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);
        string targetPath = Context.Parameters["TargetDir"];
        InstallDatabase db = new InstallDatabase(targetPath);

        DialogResult dbResult = db.ShowDialog();

        if (dbResult != DialogResult.OK)
        {
            throw new InstallException("Database is not installed.");
        }

        ConfigureFiles config = new ConfigureFiles(targetPath);
        DialogResult configResult = config.ShowDialog();

        if (configResult != DialogResult.OK)
        {
            throw new InstallException("Config files are not saved correctly.");
        }
    }
}

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ:

Я попытался установить значение определенной конфигурации для моего сообщения. Это результат, когда я запускаю проект установки.

Есть ли способ вызвать мой app.config в проекте установки

1 ответ

Решение

Есть, по крайней мере, пара вещей, которые могут пойти не так.

Приложение работает не так, как если бы вы запускали его как интерактивный пользователь. Он вызывается из процесса msiexec.exe, который ничего не знает о вашей предполагаемой среде, такой как рабочий каталог. Ничего из автоматического, происходящего из-за запуска из оболочки проводника, не произойдет. Любые пути, которые вы используете, должны быть полными и явными. Я думаю, что вам может понадобиться явно загрузить файл настроек.

Что-то еще, что может произойти при установке на отдельную машину, - это то, что пользовательские действия выполняются с системной учетной записью, поэтому любой код, который предполагает, что у вас есть доступ к базам данных, элементы профиля пользователя, такие как папки, могут не работать.

Другая проблема заключается в том, что Windows Forms часто не работают хорошо при вызове из настраиваемого действия VS. Это не то, что работает очень хорошо, потому что эта среда не является моделью потоков STA, которая требуется для оконных сообщений и т. Д.

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

Другие вопросы по тегам