【问题标题】:Windows VB.NET Application exe run as administratorWindows VB.NET 应用程序 exe 以管理员身份运行
【发布时间】:2016-04-12 10:18:02
【问题描述】:

我创建了一个从安装文件安装的应用程序,该文件安装程序所需的所有文件。当我更新应用程序时,我只能将更新应用程序的 exe 文件共享给用户,而不是整个安装包/设置文件(由于限制不可能)(原因:以便他可以运行应用程序我不得不制作一个新的安装包/安装文件,而用户必须从安装文件安装)到目前为止,我的尝试都没有成功。任何人都可以建议这是否可能或者我做错了什么?

P.S : 我添加了具有始终以管理员身份工作的特权的清单文件,没有它我无法运行我的基本应用程序(错误:访问路径 c:/xxxx/Tnsnames.ora em> 拒绝)

【问题讨论】:

  • 您的基础应用程序在没有管理权限的情况下无法运行是否有正当理由?普通应用程序应始终以非提升模式运行,并且最好仅将提升用于特定任务。必须运行提升的整个应用程序是只能由非常特定的应用程序完成的事情。如果只是因为应用程序无法运行,那么您需要正确配置安装程序,直接设置正确的安装权限,和/或将共享数据移动到默认的共享应用程序数据文件夹。
  • tnsnames.ora 文件具有在代码中解密的连接字符串的加密值......这就是整个应用程序以管理权限运行的原因。 tnsnames.ora 位于默认的共享应用程序文件夹中。我应该改变这个吗?]
  • 如果我理解,您的 .exe 每次运行时都会更改 .ora?我只见过有人将连接字符串存储在 .config 文件中,并将服务器信息存储在 .ora 文件中。
  • 一个安装程序已经以管理员权限运行,因此您无处可去。您无法打开已锁定的文件。就像安装程序使用的数据库一样。请改用documented MSI api
  • @the_lotus 不完全是,我的应用程序检查 tnsnames.ora 文件中的连接字符串,该文件具有多个地址列表,这使我能够通过更改 SID 连接到不同的环境。 link。我们做了这样的规定,这样我们就可以很容易地通过更改 tnsnames.ora 文件来登录到我们想要的环境。

标签: vb.net windows exe uac


【解决方案1】:

清单文件就是答案。

Manifest 文件是 VB 项目中的一个文件,其中包含信息 关于文件分发的内容。它可能包含校验和或 哈希以验证该文件是原始文件并且没有以任何方式修改。 修改文件将更改其校验和值。

您需要将asInvoker 替换为requireAdministratorhighestAvailable

更新链接: 已满tutorial

【讨论】:

  • 我已经添加了清单文件,这就是应用程序在被调用时以管理员身份运行的原因。我在问题中提到了这一点,但我猜我不够清楚..
  • 文章链接已更改,这是新链接:downloadinformer.com/…
猜你喜欢
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多