有变量"喜欢" $ PROGRAMFILES设置为匹配目标系统的位宽?

时间:2017-03-10 19:17:35

标签: 64-bit nsis

我需要更改安装程序脚本,将文件放入C:\Program Files(32位)和$PROGRAMFILES(64位)。

我希望C:\Program Files (x86)是正确的变量,但是从文档来看,这总是指向"The program files directory (usually C:\Program Files but detected at runtime). On Windows x64, $PROGRAMFILES and $PROGRAMFILES32 point to C:\Program Files (x86) while $PROGRAMFILES64 points to C:\Program Files. Use $PROGRAMFILES64 when installing x64 applications."

${If} ${RunningX64}

我熟悉如何使用$PROGRAMFILES在安装时测试系统,但脚本中有数十个namespace ConsoleApplication14 { class Program { public void studentProfile() { Dictionary<string, int> satya = new Dictionary<string, int>(); { satya.Add("Acpl", 2); satya.Add("Bio", 1); satya.Add("Ch", 4); satya.Add("Om", 5); } Dictionary<string, int> rahul = new Dictionary<string, int>(); { rahul.Add("Acpl", 2); rahul.Add("Bio", 1); rahul.Add("Ch", 4); rahul.Add("Om", 5); } } static void Main(string[] args) { int maxAttempts = 5; } } } 条目,所以我想避免这种方法,如果尽可能。

是否有自动设置的其他变量?

1 个答案:

答案 0 :(得分:1)

没有与系统匹配的程序文件变量。 $PROGRAMFILES匹配安装程序的位数。

如果您需要匹配系统的位数,则必须创建自己的变量并在.onInit中初始化它。在{32}系统上,$PROGRAMFILES64可能降级为$PROGRAMFILES32,但我不确定是否支持使用它。

这通常不是问题,因为在引用目标文件夹时应该使用$InstDir