Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#使用非管理员用户权限更新程序文件_C# - Fatal编程技术网

c#使用非管理员用户权限更新程序文件

c#使用非管理员用户权限更新程序文件,c#,C#,如您所知,C:\Program Files是一个受限制的文件夹,只有管理员才能修改此文件夹的内容。 我的c#应用程序能够自我更新他。所以我需要以编程方式从服务器下载一些文件,并用旧文件替换它们。这些文件在程序文件中。我能做些什么呢?如果你需要让你的应用程序在任何需要管理员权限才能更新的地方运行,那么你就被卡住了。您必须将进程的权限提升到管理员级别才能执行更新 此问题的解决方案是将应用程序安装到其他地方,即不需要管理员权限的地方。您需要生成一个帮助程序应用程序,该应用程序将升级以获得适当的权限,将

如您所知,C:\Program Files是一个受限制的文件夹,只有管理员才能修改此文件夹的内容。
我的c#应用程序能够自我更新他。所以我需要以编程方式从服务器下载一些文件,并用旧文件替换它们。这些文件在程序文件中。我能做些什么呢?

如果你需要让你的应用程序在任何需要管理员权限才能更新的地方运行,那么你就被卡住了。您必须将进程的权限提升到管理员级别才能执行更新


此问题的解决方案是将应用程序安装到其他地方,即不需要管理员权限的地方。

您需要生成一个帮助程序应用程序,该应用程序将升级以获得适当的权限,将新二进制文件复制到需要的位置,然后退出。也许您可以将
copy.exe
与知道升级的
进程一起使用。似乎表明你可以不费吹灰之力地做这件事。但是,如果您的程序位于
C:\program Files

中,则无法绕过管理权限。到目前为止,您做了什么?为什么不更新您的程序,将其数据写入C:\program data的子文件夹中(使用
Environment.GetSpecialFolder(Environment.SpecialFolder.CommonApplicationData)
以可靠地获取路径)?