Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
Vb.net 是否编译需要管理员支持的单击一次应用程序?_Vb.net_Visual Studio 2010_Clickonce_Uac - Fatal编程技术网

Vb.net 是否编译需要管理员支持的单击一次应用程序?

Vb.net 是否编译需要管理员支持的单击一次应用程序?,vb.net,visual-studio-2010,clickonce,uac,Vb.net,Visual Studio 2010,Clickonce,Uac,我的很多程序都需要将文件写入硬盘的能力。当我第一次为XP制作这些程序时,它们工作得非常好。现在我对UAC不那么无知了(最近买了一台新的笔记本电脑)。对于未来的客户…我已经注意到可能会有很多恼人的错误消息…坦率地说,如果程序无法将数据写入硬盘或拇指驱动器,那么运行它就没有意义了 我已经多次尝试在清单中建立管理员或用户访问权限的要求…我不确定是否有更少的内容可以解决问题…但是失败了,因为click once具有安全功能,可以阻止我这样做 我不想告诉我的客户如何通过编辑文件属性使程序以管理员身份运行…

我的很多程序都需要将文件写入硬盘的能力。当我第一次为XP制作这些程序时,它们工作得非常好。现在我对UAC不那么无知了(最近买了一台新的笔记本电脑)。对于未来的客户…我已经注意到可能会有很多恼人的错误消息…坦率地说,如果程序无法将数据写入硬盘或拇指驱动器,那么运行它就没有意义了

我已经多次尝试在清单中建立管理员或用户访问权限的要求…我不确定是否有更少的内容可以解决问题…但是失败了,因为click once具有安全功能,可以阻止我这样做

我不想告诉我的客户如何通过编辑文件属性使程序以管理员身份运行……我更希望有一个方便的弹出窗口,如Itunes或Filezilla show等新程序,如果它们与UAC请求所需特权发生冲突

我真的很想这样做,但几乎没有成功

任何能解决这一严重问题的建议,我们都将不胜感激


谢谢。

首先,让我告诉您ClickOnce部署的设计目标不是要求管理权限。这可以转化为“运行ClickOnce应用程序时无法提升权限”

当WindowsVista问世时,微软发布了关于在何处存储您希望更新的文件的指导原则。程序文件中不应放置任何内容;他们通常建议使用LocalApplicationData或独立存储。Windows 7也存在同样的问题


那么,您打算在哪里为您的客户写入数据呢?

您可以发布他们收到的一些错误消息吗?我必须重新创建它们…我可以这样做,但是错误信息都表明,不允许访问硬盘驱动器……我不知道这是否足够,因此我将重新创建一个错误信息示例。此程序是可移植的,这意味着它将在安装到的任何位置存储数据。通常情况下,我的客户会将其安装到程序文件中(不熟悉),或者将其安装到thumb驱动器中。我注意到这个问题是在程序文件中出现的,我不记得在出于烦恼而禁用UAC之前是否在桌面或拇指驱动器上测试过它。但是这个程序可能存在于硬盘上的任何地方,真的……如果你想将应用程序存储在程序文件中,你不能使用ClickOnce部署。它不支持这一点。正如我提到的ClickOnce的设计目标一样,它安装在用户配置文件下的模糊文件夹中,因此用户不会弄乱它。此外,我建议您不要禁用UAC,因为它确实有助于保护您的计算机安全,但这当然是您的选择。此外,对于ClickOnce,您必须考虑将数据存储在何处。我不使用部署文件存储我的数据,因为每个版本都部署了新文件夹。另一个注意事项——我写这篇博客是为了帮助人们存储数据,而不是在更新之间丢失数据。这可能对你有帮助。我不知道为什么我会在更新之间丢失数据,但你可能使用了比我更复杂的数据存储方法……我只使用文本文件……我使用了一种非常奇怪的设置,因为我讨厌clickonce如何安装程序。我有一个部署安装程序,通过我的安装过程,所以我可以显示一个用户许可协议和安装选项给我的客户。用户决定实际程序的安装位置,程序将数据存储在其目录位置。如果没有这个问题,它会工作得非常漂亮……每次用户安装更新时,它都会创建新文件夹并从那里运行。这就是我移动数据的原因——以确保我的数据不会意外地落在后面。我不明白为什么它对安装应用程序的用户很重要;无论如何,他不应该乱搞部署文件(顺便说一句,这是由C/O验证的)。如果这对您非常重要,则不能使用ClickOnce部署。它必须安装在用户配置文件ClickOnce缓存文件夹中。