【问题标题】:How to stop files been saved in Virtual Store / ProgramData?如何停止将文件保存在 Virtual Store / ProgramData 中?
【发布时间】:2014-02-11 16:32:34
【问题描述】:

[我在 2 个月前提交了这个问题,但没有得到任何回复......显然问题仍然存在,我们即将发布我们应用程序的新版本,所以现在我正在编写一些文档来获取用户删除虚拟商店中的任何条目-我不想做的事情....所以现在真的希望有人可以帮助我们吗?! ]

我很感激有很多关于这个主题的信息,但我仍然有一个烦人的问题,不知道该去哪里......因此来到这里!!

我们有一个应用程序 (VB.NET) 现在将 REPORT 文件安装到 ProgramData 下的文件夹中。现在我们的应用程序 dll 是从第三方应用程序(我们显然无法控制)运行的,这个第三方应用程序允许人们运行报告;但是当运行报告时,它会更新报告,以便存储它的“上次运行日期”。这就是给我们带来乐趣的原因。

启用 UAC 后,报告文件将复制到虚拟存储中的等效位置。当他们使用我们应用程序的当前版本时,这当然没问题,但是当我们发布新版本(带有修改后的报告)时,这些新版本会正确安装到 ProgramData 中,但是当用户运行应用程序时 - 他们会看到来自虚拟商店的过时报告。

我们非常接近编写一些安装文档,告诉人们在安装我们的新版本之前从虚拟商店中删除所有报告 - 但这是一个真正的逃避!

第三方应用程序还安装了自己的报告(安装到 ProgramData 下的不同位置)并且他们能够在不启动虚拟商店的情况下更新他们的报告 - 所以我们知道这是可能的!

我刚刚在我们的 dll 中添加了一个清单:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
  </assembly>

希望这能治愈,但可惜没有!

所以,我愿意接受你们可能有的任何建议?!?

干杯,

克里斯。

【问题讨论】:

    标签: vb.net manifest uac programdata virtualstore


    【解决方案1】:

    当用户无权写入请求的程序文件夹时,使用 VirtualStore。所以最简单的解决方案是给你的用户权限。实际上,我喜欢使用用户组,所以还有一些安全性。

    系统工具>本地用户和组>组,“新组”并创建说“XYZCompanyUsers”。 Windows 资源管理器 > 程序文件 (x86) > XYZCompany,“属性”“安全”。现在添加新组“XYZCompanyUsers”并授予他们完全权限。

    【讨论】:

      【解决方案2】:

      应用程序需要有程序集清单。

      asInvoker 放在.dll 的程序集清单中对您没有帮助。

      现在我们的应用程序 dll 是从第三方应用程序运行的(我们显然无法控制)

      您需要告诉第 3 方应用程序编写一个正确 Windows 应用程序。并且正确编写的 Windows 应用程序具有程序集清单。如果他们的.exe 没有清单,那么它不是正确编写的 Windows 应用程序。 (清单是 Windows 编程基本规则的一部分)。

      • 如果他们没有清单:您可以创建自己的清单并将其放入他们的可执行文件中(例如,使用 ResourceHacker 或 Windows 10 SDK 中的 MT
      • 或者您可以编辑他们现有的程序集清单(再次使用 Resource Hacker)以包含 asInvoker 属性
      • 或者您可以放置​​一个外部 (CotosoApp.exe.manifest) 清单

      【讨论】:

        猜你喜欢
        • 2019-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多