2015-06-14 2 views
0

Я создаю установщик для программы Python, используя NSIS. Мне нужно скопировать исходные файлы в C: \ Program Files \ Snakecharmer, поэтому я сначала убедился, что он создан, а затем копирует исходные файлы в C: \ Program Files \ Snakecharmer. Есть три файла .py, которые я копирую, плюс __pycache__ и некоторые другие вещи.NSIS CopyFiles не работает для .py-файлов

Содержимое __pycache__ копировано, но они не находятся в __pycache__, они просто скопированы в каталог. Три файла .py не копируются вообще. Все остальное копирует правильно.

Вот мой код

CopyFiles "$R0\SnakeCharmer.py" "$INSTDIR" 
CopyFiles "$R0\snakecharmerupdater.py" "$INSTDIR" 
CopyFiles "$R0\cobracrypt.py" "$INSTDIR" 
CopyFiles "$R0\__pycache__" "$INSTDIR" 
CopyFiles "$R0\Run_SnakeCharmer.bat" "$INSTDIR" 
CopyFiles "$R0\icon.ico" "$INSTDIR" 
CopyFiles "$R0\SnakeCharmer.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs" 

Первые три являются .py файлы, которые не копируют.

Почему это происходит и как я могу это исправить?

+0

Вы не должны жестко закодировать все пользователь STARTMENU пути ... – Anders

+0

Это временная вещь, пока я не найду альтернативу. –

ответ

1

NSIS использует SHFileOperation внутренне, нет специальной обработки любых типов файлов. Просто убедитесь, что каталог назначения существует до начала операции: CreateDirectory "$InstDir"

Process Monitor, вероятно, даст вам некоторые подсказки относительно того, почему он не ...

Смежные вопросы