Как предотвратить удаление неисполняемых файлов DesktopAppConverter при создании AppX?

Я пытаюсь создать тестовый AppX из DesktopAppConverter.exe, используя простой пакетный файл в качестве установщика. Вот что делает командный файл:

ECHO OFF

mkdir c:\target

copy c:\source\testfile.txt c:\target

copy c:\source\app.vhd c:\target

copy c:\windows\system32\kernel32.dll c:\target

copy c:\windows\system32\calc.exe c:\target

EXIT 0

После создания пакета «целевой» каталог внутри каталога VFS содержит файлы «kernel32.dll» и «calc.exe», но не содержит app.vhd или testfile.txt.

Может ли кто-нибудь помочь мне со способом получения этих файлов в пакете?

Командная строка DesktopAppConverter.exe выглядит следующим образом:

DesktopAppConverter.exe -Installer C:\source\dummyappxinstaller.bat ->Destination C:\appx\ -PackageName "DummyAppx" -Publisher "CN=AppVolumes" ->Version 0.0.0.1 -MakeAppx -Verbose -AppExecutable c:\target\ calc.exe`

Процесс создания завершается успешно с предупреждением W_INSTALL_PATH_NOT_DISCOVERED.


person Dev28    schedule 08.12.2016    source источник
comment
Можете ли вы проверить, находится ли файл app.vhd или testfile.txt в каталоге PackageFiles? Я постараюсь со своей стороны проверить, возможно ли выполнить ваше требование.   -  person Amy Peng - MSFT    schedule 09.12.2016
comment
@FangPeng-MSFT: они отсутствуют в каталоге Package Files. я вижу kernel32.dll и calc.exe в «целевой» папке под VFS. Любая возможная причина, по которой .vhd и .txt удаляются во время создания приложения?   -  person Dev28    schedule 09.12.2016
comment
Также интересно отметить, что когда я создаю свой собственный helloworld.exe и помещаю его в исходную папку, упомянутую в пакетном файле выше, даже это не отображается в AppX!!!   -  person Dev28    schedule 09.12.2016


Ответы (1)


Это ожидаемый результат. Я постараюсь объяснить это понятно.

скопировать c:\source\testfile.txt c:\target

Когда вы используете приведенную выше команду в процессе конвертера рабочего стола, он попытается найти файл testfile.txt в VFS (виртуальная файловая система), на самом деле этот файл не существует в VFS, поэтому вы не можете найти этот файл в целевой папке.

скопировать c:\windows\system32\kernel32.dll c:\target
скопировать c:\windows\system32\calc.exe c:\target

Но для kernel32.dll и calc.exe они находятся в системной папке, и они также существуют в системе VFS, таким образом, вы не можете найти эти два файла в целевой папке внутри папки VFS.

Если вы хотите включить testfile.txt при создании Appx, попробуйте использовать какой-либо инструмент установщика, чтобы упаковать его вместе с файлом установщика.

person Amy Peng - MSFT    schedule 15.12.2016
comment
Спасибо Фанг. Что может привести к тому, что использование установщика приведет к тому, что DAC будет вести себя иначе, чем с копией файла? - person Dev28; 15.12.2016
comment
Например, у вас есть текстовый файл в вашем приложении, после преобразования AppData перенаправляется в локальное хранилище данных приложения, которое является частным хранилищем для каждого приложения UWP. Для получения дополнительной информации проверьте: msdn.microsoft .com/id-id/windows/uwp/porting/ - person Amy Peng - MSFT; 20.12.2016