2015-06-14 115 views
0

我正在使用NSIS为Python程序创建安装程序。我必须将源文件复制到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将可能给你一些线索,失败的原因...