使用 NSIS 安装在 ProgramData 文件夹中

install in ProgramData folder using NSIS

我想使用 nsis installerC:\ProgramData 文件夹中安装一些应用程序数据。我想避免对其进行硬编码,因为它可能不在 C: drive 上。

文档 https://nsis.sourceforge.io/Docs/Chapter4.html 没有任何定义 ProgramData 的常量。 nsisProgramData 文件夹中的安装方式是什么?

Microsoft 移动并重命名了 Vista 中的一些特殊文件夹。 %ProgramData%CSIDL_COMMON_APPDATA,您可以在 NSIS 中获取该路径:

Section
SetShellVarContext all
MessageBox MB_OK "$LocalAppData"
SetOutPath "$LocalAppData\MyAppsData" 
File /r mydata\*.*
SectionEnd

您可以使用 GetKnownFolderPath:

GetKnownFolderPath [=10=] {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97} ; FOLDERID_ProgramData
MessageBox MB_OK [=10=]