问候,
我正在迁移到 x64 环境(Windows XP SP3 到 Windows 7 X64)的 32 位软件程序遇到一个特殊问题。该应用程序的问题是电子登记/直到我们的端点销售办事处。
该应用程序位于:
"C:\Program Files(x86)\Q_Kassa"
我们已经为将软件作为外壳运行的用户配置了所有相关访问权限,包括应用程序所需文件夹的所有相关读/写权限。但是,只要我们不“以管理员身份运行”或者只要加载程序的用户不是本地管理员组的成员,应用程序就不会加载并抛出找不到文件的错误位于:
C:\Program Files\Q_Kassa\FileName
问题是,所有相关的配置数据、配置文件和注册信息都会告诉应用程序它的数据在 Program Files (x86) 目录中。出于某种原因,当应用程序使用“以管理员身份运行”选项运行时,或者在用户位于本地管理员组中时运行时,Windows 似乎将它需要作为应用程序文件夹获取的文件夹误解了。
总而言之:
As local admin / Run-as-admin option used:
the application is fed info from C:\Program Files(x86)\Q_KASSA\
--> as it should be.
When run as a normal user the application tries to get it's info from
C:\Program Files\Q_Kassa
--> wrong folder
任何人都可以解释为什么应用程序显然决定了使用哪个 Program Files 目录的运行级别?
问候,
它可能只是一个遗留问题和
%PROGRAMFILES%
混淆。最简单的解决方法是使用符号链接,如下所示:mklink /j "C:\Program Files(x86)\Q_Kassa" "C:\Program Files\Q_Kassa\"
这样,无论程序“认为”它真的在哪里,它都会起作用。另外,请注意,如果它必须写入此程序文件文件夹,则需要提升权限才能使其正常工作。Windows 确实会重定向到“VirtualRoot”文件夹,但充其量只是一团糟。