понедельник, июня 26, 2017

Windows 10 и ремонт-2

В самом начале работы по модификации программки при попытке запустить отладку в Студии получил странное сообщение о невозможности разместить программу на компьютере:
Error : DEP0700 : Registration of the app failed. Another user has already installed a packaged version of this app. An unpackaged version cannot replace this.

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

Выясняется, что на такое наталкиваются уже давно и существует несколько рецептов исправить ситуацию с помощью PowerShell. Чуть дальше выясняется, что для Windows 10 рецепты не работают и нужно ремонтировать базу пакетов, где зависает запись об установке. Попробовал использовать китайский чудо-пакет Dism++, он эту неведомую запись увидел, но удалить не сумел.

Пришлось действовать руками, т.е. при помощи менеджера Фар. База с гнилой записью называется C:\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd, запись находится в таблице Package. С помощью плагина “Редактор баз данных SQLite” удалось (ну да, надо исхитряться) локализовать и удалить злополучную запись. Попутно пришлось дать по зубам системе, которая выпендривалась и не желала поставить на место отредактированную базу – по-простому объявил себя владельцем этого файла…

Есть подозрения, что эту гадость делает сама Студия, когда при попытке отладки изменённого приложения берётся удалить ранее установленное из магазина. Экспериментировать пока не хочется, но манию топтаться по собственным яйцам стрелять себе в ногу у неё не отнять – например, часто при сборке пакета вылезает ошибка типа “не могу удалить папку”, которую сама же и открыла…

Комментариев нет: