Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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# 更新程序文件(x86)文件夹中的DLL_C#_Windows_Dll_Installation - Fatal编程技术网

C# 更新程序文件(x86)文件夹中的DLL

C# 更新程序文件(x86)文件夹中的DLL,c#,windows,dll,installation,C#,Windows,Dll,Installation,我们已经编写了一个windows应用程序。它包括一个启动引导程序 引导程序的目的是对照程序安装文件夹中安装的内容检查服务器上保存的文件列表,并根据需要进行更新 客户强加给我们的要求是: 应用程序必须安装在程序文件(x86)中-排除单击一次。 应用程序必须在启动时检查更新 现在,当不使用ProgramFiles目录时,引导程序代码可以正常工作,因此这不是代码问题 如何获得引导程序代码的管理员权限,以便它可以将dll文件写入程序目录以使更新工作。这必须在windows 7/8/8.1/10上运行 提

我们已经编写了一个windows应用程序。它包括一个启动引导程序

引导程序的目的是对照程序安装文件夹中安装的内容检查服务器上保存的文件列表,并根据需要进行更新

客户强加给我们的要求是:

应用程序必须安装在程序文件(x86)中-排除单击一次。 应用程序必须在启动时检查更新

现在,当不使用ProgramFiles目录时,引导程序代码可以正常工作,因此这不是代码问题

如何获得引导程序代码的管理员权限,以便它可以将dll文件写入程序目录以使更新工作。这必须在windows 7/8/8.1/10上运行


提前感谢您的建议。

您可以将应用程序清单文件添加到项目中并替换

<requestedExecutionLevel level="asInvoker" uiAccess="false" />


这样,您的应用程序将需要管理员权限才能运行


<>但是更好的是,考虑下面的方法。将launcher安装到程序文件中,并使用它将最新版本(应用程序或launcher)下载到AppData文件夹中,然后从那里启动它-不需要管理员权限。

这会允许卸载选项仍然工作吗?另外,用户的AppData文件夹也是如此。该应用程序需要为所有登录到计算机的用户运行(哦,共享环境的乐趣),卸载将以与以前相同的方式工作-它将卸载程序文件中的所有内容。要从AppData中删除文件,您需要在安装程序中单独实现。每个用户帐户都有自己的AppData文件夹。使用
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
获取此文件夹的路径,它将适用于所有用户。感谢您的帮助。它工作得很好。有一个不利的方面。如果有多个用户,我们实际上会得到软件的多个副本,但我认为我们可以接受。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />