Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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#_Wpf_Auto Update - Fatal编程技术网

C# 当计算机每次关闭时重置时,如何自动更新应用程序?

C# 当计算机每次关闭时重置时,如何自动更新应用程序?,c#,wpf,auto-update,C#,Wpf,Auto Update,我有一个用WPF制作的桌面应用程序。我见过第三方工具可以轻松地自动更新我的应用程序,但我还没有看到计算机自动重置其文件的解决方案 我们可以要求系统管理员安装我的应用程序,每次计算机重置时,应用程序仍然存在。但是,如果我想更新我的应用程序,我必须再次要求系统管理员更新我的应用程序,因为据我所知,应用程序无法自我更新 那么,有没有一种解决方案可以在不要求系统管理员的情况下自动更新应用程序?我不一定(但可能)要求提供编码解决方案,但如果系统管理员可以采取措施解决问题,这也可能是一个解决方案。正如我在评

我有一个用WPF制作的桌面应用程序。我见过第三方工具可以轻松地自动更新我的应用程序,但我还没有看到计算机自动重置其文件的解决方案

我们可以要求系统管理员安装我的应用程序,每次计算机重置时,应用程序仍然存在。但是,如果我想更新我的应用程序,我必须再次要求系统管理员更新我的应用程序,因为据我所知,应用程序无法自我更新


那么,有没有一种解决方案可以在不要求系统管理员的情况下自动更新应用程序?我不一定(但可能)要求提供编码解决方案,但如果系统管理员可以采取措施解决问题,这也可能是一个解决方案。

正如我在评论中提到的,一种方法是:

将您的主应用程序保存在主服务器的共享文件夹中,用户可能使用您的应用程序的所有连接计算机都可以访问该文件夹

制作第二个可以从网络源访问和复制应用程序的应用程序。此代码可能会帮助您从以下内容开始:

string MainAppPath = @"\\NetworkLocation\myMainApp.exe";
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity identity = new WindowsIdentity(username, password);
WindowsImpersonationContext context = identity.Impersonate();
File.Copy(MainAppPath , @"D:\UserFolder", true);
请让系统管理员以完全权限将此应用程序添加到windows启动文件夹中


现在,每次计算机启动时,您的应用程序都将更新到最新版本,并保存在网络文件夹中

自动更新意味着更新到应用程序本身的最新版本吗?你说的电脑重置是什么意思?你是说重新开始吗?是的,第一个问题,第二个我不确定。我所说的“重置”是指当计算机重新启动时,您安装在计算机上的文件将消失,并且只有必要的文件(由系统管理员定义)在那里。这非常简单。如果您有网络,请将主应用程序保留在主服务器中(在共享文件夹中)。制作一个应用程序,其唯一目的是从网络文件夹中获取文件并更新当前文件。将此应用程序保存在Windows启动文件夹中如果我的解决方案对您有帮助,请单击左侧的勾号接受答案:)谢谢,先生!:)