【发布时间】:2015-10-20 20:32:24
【问题描述】:
我正在使用 NSIS 为 c# 中的桌面应用程序制作 exe,我必须为用户将几个文件写入 AppData Roaming 文件夹
我试过下面的代码
!define ROAMING_FOLDER_ROOT "$APPDATA\APPDUMMY\APPFILES"
MessageBox MB_OK 'AppDATA FOLDER "${ROAMING_FOLDER_ROOT}"' #here i am getting the correct path of the Appdata roaming folder frm variable
Section -Additional
SetOutPath "$ROAMING_FOLDER_ROOT"
SetOverwrite off
File "C:\MYAPPSOURCECODE\BIN\BookStore.sqlite"
SetOverwrite ifnewer
File "C:\MYAPPSOURCECODE\BIN\AppSettings.xml"
File "C:\MYAPPSOURCECODE\BIN\Resources\defData.xml"
File "C:\MYAPPSOURCECODE\BIN\Resources\dummy.html"
SetOutPath "$ROAMING_FOLDER_ROOT\Resources"
File "C:\MYAPPSOURCECODE\BIN\Resources\appjsfile.js"
SectionEnd
虽然我试图对 $LocalAppData 执行相同的操作,但它会写入 AppDAta Local 文件夹,但我想让它可写入 Roaming 文件夹
【问题讨论】:
-
您的问题到底是什么?如果您想写入漫游文件夹 - 使用 $APPDATA。如果您想写入本地文件夹 - 相应地使用 $LOCALAPPDATA。您的代码看起来不错。
-
我正在尝试将文件写入 ROAMING 文件夹,但此代码实际上并未写入 Roaming 文件夹。我可以看到文件是在 C:\\\ProgramData Folder 中生成的,这是所有应用程序的公共区域。看不到它不写入 Appdata Roaming 文件夹的任何原因
-
您发布的代码无法编译。将 MessageBox 移动到一个部分/函数后,您仍然会收到一个编译器警告,您确实应该注意!
标签: c# deployment nsis