Как я могу изменить расположение файла .InstallState в MSI, сгенерированном Visual Studio - PullRequest
3 голосов
/ 06 ноября 2008

У меня есть файл MSI, который я создал с помощью проекта установки Visual Studio. Установленный генерирует файл .InstallState в каталоге приложения. Можно ли создать этот файл в другом месте, а не в месте по умолчанию?

Ответы [ 2 ]

2 голосов
/ 10 апреля 2009

Вам необходимо установить значение InstallStateDir.
Вам необходимо переопределить Commit / Install / Rollback / Uninstall и установить значение InstallStateDir (I.E. Context ["InstallStateDir"] = @ "c: \ mydir") ,

1 голос
/ 22 декабря 2009

Это также должно работать, указав / InstallStateDir = "c: \ myfolder" из командной строки (см. KB946503). Однако InstallContext преобразует все имена параметров в нижний регистр, что нарушает следующий код из AssemblyInstaller, ожидая найти имя параметра в смешанном регистре:

private string GetInstallStatePath(string assemblyPath)
{
    string str2 = base.Context.Parameters["InstallStateDir"];
    assemblyPath = Path.ChangeExtension(assemblyPath, ".InstallState");
    if (!string.IsNullOrEmpty(str2))
    {
        return Path.Combine(str2, Path.GetFileName(assemblyPath));
    }
    return assemblyPath;
}

Установка Context["InstallStateDir"] возможно будет работать для сохранения состояния; однако, поскольку состояние загружается до того, как Uninstall может изменить контекст, это не будет приемлемым решением, пока Microsoft не исправит вышеуказанный метод AssemblyInstaller.GetInstallStatePath.

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