После отключения виртуализации файлов и реестра мое приложение C# не работает должным образом после установки.C#

Место общения программистов C#
Ответить
Anonymous
 После отключения виртуализации файлов и реестра мое приложение C# не работает должным образом после установки.

Сообщение Anonymous »

У нас есть отдельное настольное приложение C#, которое также использует код VB6 для записи некоторой логики в файл .md5.
Из-за виртуализации файлов Windows и реестра некоторые ключи реестра на некоторых машинах не получают значения, поскольку система перенаправляет чтение реестра в другое место в реестре. Чтобы решить эту проблему, мы отключили виртуализацию для нашего приложения.
Эта проблема решена, но теперь мы столкнулись с новой проблемой, связанной с кодом VB6, и это странно. Когда я запускаю приложение через свою базу кода с помощью Visual Studio (VS15), оно работает нормально, когда я запускаю exe непосредственно из моей локальной базы кода, оно работает нормально, но когда я запускаю приложение через меню «Пуск» (после установки приложения), оно не работает и выдает исключение, приведенное ниже. Если я запускаю приложение от имени администратора, оно работает нормально.
Исключение, которое я получил, связано с кодом VB6:

Код: Выделить всё

tvsFilename = tvsReleaseFolder & "\Packages\" & tvsPackageName & ".md5"

tvTextStream = tvFSOCP.OpenTextFile(
tvsFilename,
Scripting.IOMode.ForAppending,
False,
Scripting.Tristate.TristateFalse)
Исключение из HRESULT: 0x800A0035 (CTL_E_FILENOTFOUND).
Я проверил разрешение на доступ к местоположению, и все разрешения предоставлены пользователю.
И если требуется разрешение администратора, почему это работает нормально с базой кода, поскольку я обычно запускаю exe из базы кода или Visual студия, которая работает не от имени администратора. Это происходит только тогда, когда я установил приложение и нормально запустил его.
Я снова проверил, чтобы включить виртуализацию, и установил обновленное приложение, теперь оно работает.
Но нам нужно отключить виртуализацию для нашего приложения, чтобы получить правильное местоположение в реестре.
Я проверил создание фиктивного текстового файла из кода VB6 с помощью функции CreateTextFile() и обнаружил, что Проблема заключается в коде VB6, поскольку он отлично работает с базой кода, но не работает с установленной версией приложения, если я отключу виртуализацию для своего приложения.
Я просмотрел много тем, но не нашел никаких проблем. Любая помощь даст мне направление двигаться дальше.

Подробнее здесь: https://stackoverflow.com/questions/416 ... n-does-not
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»