Из-за виртуализации файлов Windows и реестра некоторые ключи реестра на некоторых машинах не получают значения, поскольку система перенаправляет чтение реестра в другое место в реестре. Чтобы решить эту проблему, мы отключили виртуализацию для нашего приложения.
Эта проблема решена, но теперь мы столкнулись с новой проблемой, связанной с кодом VB6, и это странно. Когда я запускаю приложение через свою базу кода с помощью Visual Studio (VS15), оно работает нормально, когда я запускаю exe непосредственно из моей локальной базы кода, оно работает нормально, но когда я запускаю приложение через меню «Пуск» (после установки приложения), оно не работает и выдает исключение, приведенное ниже. Если я запускаю приложение от имени администратора, оно работает нормально.
Исключение, которое я получил, связано с кодом VB6:
Код: Выделить всё
tvsFilename = tvsReleaseFolder & "\Packages\" & tvsPackageName & ".md5"
tvTextStream = tvFSOCP.OpenTextFile(
tvsFilename,
Scripting.IOMode.ForAppending,
False,
Scripting.Tristate.TristateFalse)
Я проверил разрешение на доступ к местоположению, и все разрешения предоставлены пользователю.
И если требуется разрешение администратора, почему это работает нормально с базой кода, поскольку я обычно запускаю exe из базы кода или Visual студия, которая работает не от имени администратора. Это происходит только тогда, когда я установил приложение и нормально запустил его.
Я снова проверил, чтобы включить виртуализацию, и установил обновленное приложение, теперь оно работает.
Но нам нужно отключить виртуализацию для нашего приложения, чтобы получить правильное местоположение в реестре.
Я проверил создание фиктивного текстового файла из кода VB6 с помощью функции CreateTextFile() и обнаружил, что Проблема заключается в коде VB6, поскольку он отлично работает с базой кода, но не работает с установленной версией приложения, если я отключу виртуализацию для своего приложения.
Я просмотрел много тем, но не нашел никаких проблем. Любая помощь даст мне направление двигаться дальше.
Подробнее здесь: https://stackoverflow.com/questions/416 ... n-does-not
Мобильная версия