2010-05-25 63 views
3

我的很多程序都需要将文件写入硬盘。当我第一次为XP制作这些程序时,他们效果很好。现在我对UAC不太陌生(最近有一台新笔记本电脑)。对于未来的客户......我已经注意到很多恼人的错误消息的潜力......并且坦率地说,如果程序无法将数据写入硬盘驱动器或拇指驱动器,那么......没有意义运行它....编译一个需要管理员的点击型应用程序?

我试过多次,以建立管理员或用户访问清单的要求....我不知道如果有什么不太会解决这个问题...但有失败,因为点击一次具有安全功能,以防止我这样做。

我宁愿没有告诉我的客户如何通过编辑文件的属性,从而以管理员身份运行程序...我宁愿有一个方便的弹出像什么,你会看到新的计划,因为Itunes或Filezilla会显示它们是否与UAC发出请求所需特权的冲突。

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

任何和所有的建议,可以解决这个严重的问题,赞赏。

谢谢。

+0

你可以发布一些他们收到的错误信息吗? – N0Alias 2010-05-25 01:40:25

+0

我不得不重新创建它们......我可以这样做,但是错误信息全都说了一些有关访问硬盘的内容是不允许的......我不知道这是否足够,我将重新创建一个示例错误消息。 – Assimilater 2010-05-25 04:28:53

回答

4

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

在Windows Vista中走了出来,微软公布了在哪里存储您希望能够更新文件的指导方针。 没有什么应放置在Program Files中;他们通常推荐LocalApplicationData或Isolated Storage。 Windows 7中也存在相同的问题。

那么你在哪里试图为你的客户写数据?

+0

这个程序是可移植的,这意味着它将数据存储在安装到的任何位置。通常我的客户会将其安装到程序文件中(不熟悉),或者将其安装到拇指驱动器。我注意到程序在程序文件中时发生的问题,我不记得是否在禁用UAC之前在桌面或拇指驱动器上测试过它。但是这个程序可能存在于硬盘上的任何地方,真的...... – Assimilater 2010-05-25 18:31:16

+0

如果你想在Program Files中存储应用程序,你不能使用ClickOnce部署。它不支持这一点。正如我提到的ClickOnce的设计目标,它在用户的配置文件中安装在混淆文件夹下,因此用户不能混淆它。此外,我建议您不要禁用UAC,因为它确实有助于保持计算机安全,但当然,这也是您的选择。此外,对于ClickOnce,您必须考虑要存储数据的位置。我不保存部署文件,因为每个版本都有新的文件夹。 – RobinDotNet 2010-05-26 08:44:19

+0

另一个说明 - 我写了这个博客条目来帮助人们存储他们的数据,而不是在更新之间丢失它。这可能对你有所帮助。 http://robindotnet.wordpress.com/2009/08/19/where-do-i-put-my-data-to-keep-it-safe-from-clickonce-updates/ – RobinDotNet 2010-05-26 08:45:34

相关问题