将C#应用程序从WinXP转换为7:如何使其不需要管理员权限?

将C#应用程序从WinXP转换为7:如何使其不需要管理员权限?,c#,windows,C#,Windows,我有一个设计用于XP的程序,但随着Windows放弃对操作系统的支持,是时候升级了 该位置位于程序文件(x86)中,因此当我在没有管理员权限的情况下运行它时,它无法读取/写入其文件夹中的库/程序集文件 我有什么选择 发现此链接很有用: 自从Vista于2007年发布以来,UAC意味着用户没有写入程序文件目录的权限,除非程序在提升状态下运行。您需要在其他地方找到需要修改的文件 我不能说这些文件应该放在哪里。也许在用户配置文件下,也许在其他地方。这需要对应用程序的运行方式有一些详细的了解,才能给出更

我有一个设计用于XP的程序,但随着Windows放弃对操作系统的支持,是时候升级了

该位置位于程序文件(x86)中,因此当我在没有管理员权限的情况下运行它时,它无法读取/写入其文件夹中的库/程序集文件

我有什么选择

发现此链接很有用:


自从Vista于2007年发布以来,UAC意味着用户没有写入程序文件目录的权限,除非程序在提升状态下运行。您需要在其他地方找到需要修改的文件

我不能说这些文件应该放在哪里。也许在用户配置文件下,也许在其他地方。这需要对应用程序的运行方式有一些详细的了解,才能给出更具体的建议。很可能您的应用程序需要重新设计才能与UAC良好配合

另一方面,您说您的应用程序无法访问其文件夹中的库文件。如果您所要做的只是读取这些库文件,那么即使在现代版本的Windows中也不会有问题。你似乎还没有完全诊断出这个问题。您的应用程序似乎正在尝试写入受限制的位置。但读取库或程序集文件应该没问题,即使在UAC下访问受限


因此,问题可能不是这些库文件的读取。可能问题在于应用程序正在写入程序文件目录或其他受限制的位置。您需要进行一些调试,以准确诊断应用程序的哪些部分出现故障。

这些“库文件”是什么?它们是类库(.dll)吗?或者别的什么。您可以在主题上创建ClickOnce安装程序。@ChrisDunaway它们是程序所在目录下的程序集文件。@JMK它适用于Windows窗体吗?当然适用,正在写入C:\fine?(不访问任何Windows子目录)不,在Vista和更高版本下,在没有提升的情况下,您无法在C:\中创建文件或目录。更重要的是,您甚至不应该考虑这样做。确实有一些编写工作正在进行,但这些文件在哪里并不重要,只要它们在一个公共位置(不是用户/文档)。我希望有一种方式,管理员可以给特权的程序作为标准用户运行。。。因为用户不决定创建/修改什么文件。没有这样的东西,是吗?您可能会将它们存储在
环境.SpecialFolders.CommonApplicationData
的特定于应用程序的子文件夹下。您需要安装程序向该子文件夹添加许可ACL。