clickonce - 写入/读取数据目录是否需要管理员权限?

2023-12-01

背景- 我正在考虑使用 clickonce 通过 clickonce (通过网站)部署 WinForms 应用程序。相对简单的应用程序的要素是: - 它是一个可执行文件和一个数据库文件(sqlite) - 数据库(sqlite)有时需要由应用程序更新(例如添加表、添加列) - 当然,数据库数据(只是 sqlite 的文件)需要在升级过程中保留

假设- 我在这里假设在 clickone 下允许上述操作的最佳方法是:

  • 使用数据目录作为 sqlite 数据库文件的位置
  • write the smarts into the MainForm load method to:
    • 检查是否需要以编程方式在数据目录 (DD) 中创建数据库文件(通过 ApplicationDeployment.CurrentDeployment.IsFirstRun),或者是否需要从 PRE 区域复制现有数据库文件(clickonce 应该在其中复制它) ) 到主 DD 区域
    • 检查DD中数据库文件的版本,然后更新

Question - ClickOnce 是否需要具有特殊访问权限(管理员或提升的权限)才能读取/写入/形成上述数据目录?也就是说,我可以假设最基本的用户 PC 通常应该能够执行此操作(家庭 PC 或组织中的工作 PC)。

thanks


我建议(最容易做的)是将文件(我认为是 SQLLite 数据库)添加为现有资源,右键单击它,转到属性并将构建操作更改为内容,然后复制到输出目录到“如果较新则复制”。

从这里您有 2 个选择:

如果您在更新时不会更改原始 SQL 文件,那么您可以保留原样,但如果您希望时不时地进行更改,我建议您执行以下操作:

        String appPath = Path.GetDirectoryName(Application.ExecutablePath);

        if (!System.IO.File.Exists(appPath + @"\Resources\SQLLite.db"))
        {
            System.IO.File.Copy(appPath + @"\Resources\SQLLiteIncluded.db", appPath + @"\Resources\SQLLite.db");
        }

如果需要,如果程序没有对其可执行路径的写访问权限(大多数情况下都有),您可以复制到当前用户的应用程序数据文件夹

\Resources\ 是我在项目中创建的文件夹(如果其中有内容文件,则会将其复制到可执行路径),因此我将其包含在路径中。 (这是可选的)

关于管理权限,我在我们的网络上不需要任何管理权限,但我们通过网络驱动器而不是网站进行部署,但我认为它是相同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

clickonce - 写入/读取数据目录是否需要管理员权限? 的相关文章

  • 单击相同的发布版本但程序集版本不同,更新没有发生

    我部署了一个 clickonce 应用程序 在我的应用程序中我有 10 个外部 dll 由于我的 dll 文件中的代码不断变化并且很难重新分发 因此我采用了 clickonce 部署策略 但我想知道一件事 如果我更改其中一个 dll 文件并
  • SetProcessDpiAwareness 没有效果

    我一直在尝试禁用 ClickOnce 应用程序上的 DPI 感知 我很快发现 不可能在清单中指定它 因为 ClickOnce 不支持清单文件中的 asm v3 我发现的下一个选项是调用新的 Windows 函数设置进程Dpi感知 https
  • 部署使用 Microsoft ReportViewer 的 WinForms 应用程序时出现问题

    我已经从 Visual Studio 2010 发布了一个 WinForms 应用程序 它使用 NET 4 0 在 发布 窗格的先决条件对话框中 我选择了 NET 4 0 Client Profile 和 Windows Installer
  • 是否有 NuGet 等效工具可用于向最终用户部署内容?

    我有一个 C 应用程序 我主要关心向运行我的软件的客户端推送自动更新 这些更新可以是任何内容 从新的 修补的 dll 到新的资源文件 我知道我可以创建一个 ClickOnce 应用程序来实现这一目标 但它不允许我进行太多控制 例如 我希望能
  • URLDownloadToCacheFile 失败,HRESULT '-2146697208'

    我在安装 ClickOnce vb net Windows 窗体应用程序时遇到问题 我尝试了本网站上建议的一些解决方案 但没有一个有帮助 我的应用程序是使用 VS2010 NET 4 0 Framework 构建的 并部署到我的开发计算机上
  • ClickOnce 应用程序不接受命令行参数

    我有一个采用命令行参数的 VB NET 应用程序 如果我关闭 Visual Studio 的 ClickOnce 安全设置 调试时它可以正常工作 当我尝试通过 ClickOnce 在计算机上安装应用程序并尝试使用参数运行它时 会出现此问题
  • 找不到文件“obj\Debug\Program.exe.manifest”

    如果之前已经回答过这个问题 我们深表歉意 我的 VS2010 SP1 VB NET 环境发生了一些问题 我已经通过 ClickOnce 成功地编译和发布了项目 A 一段时间 然后尝试发布项目 B 并收到了错误 在文件 microsoft c
  • 编辑注册表中的环境变量

    我想从注册表中读取所有环境变量 并在 Visual Studio 2010 Express 中使用 C 为其设置一个新值 因此我读取了本地机器的子项 SYSTEM CurrentControlSet Control Session Mana
  • Application.Restart 不传回参数

    这是一个 ClickOnce 应用程序 根据文档 http msdn microsoft com query dev10 query appId Dev10IDEF1 l EN US k k 28SYSTEM WINDOWS FORMS A
  • SignTool 错误:无效选项:/fd

    我发布我的 exe 并激活自动更新 但是当我编译exe时 出现错误 严重性代码 说明 项目文件行抑制状态 错误 An 签名时发生错误 签名失败 bin Debug app publish myapp exe SignTool 错误 无效选项
  • 仅将部分先决条件与 ClickOnce 捆绑在一起

    是否可以配置 ClickOnce 安装 使其需要 Net Framework 和 VSTO 但仅包含 VSTO 二进制文件并在必要时下载 Net Framework 在包中包含 VSTO 并不是什么大问题 但如果可能的话 我会放弃 350M
  • 升级完成后 Clickonce 应用程序不会重新启动

    我在用应用部署 http msdn microsoft com en us library system deployment application applicationdeployment aspx类检查升级是否可用 然后升级应用程序
  • Jenkins下的SignTool找不到与USB Token匹配的证书

    我想构建 WPF 应用程序并对其进行代码签名 并使用 Jenkins 使用 ClickOnce 进行部署 我的设置是 Jenkins 最新版本 运行管理员 USB 令牌上的证书 在 SafeNet 客户端中激活单点登录 https xrst
  • 如何将自定义 URL 协议与 ClickOnce 应用程序关联?

    我想关联一个自定义URL http en wikipedia org wiki Uniform Resource Locator协议 例如 myprotocol SomeFolder SomePage 与一个单击一次 http en wik
  • 适用于 Mac 的单击一次部署

    正如标题所述 是否有与 Mac 上的 Click Once 应用程序部署等效的方法 我问这个问题是因为 Lion 附带的 Safari 版本已删除 DMG 磁盘映像 文件作为下载后打开的 安全文件类型 我工作的公司有一个相当特殊用途的应用程
  • ClickOnce 有哪些替代方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我用过单击一次 https en wikipedia org wiki ClickOnce多年来 我经历
  • 如何续订过期的 ClickOnce 证书?

    我需要对一年多没有碰过的 ClickOnce 应用程序进行一些更改 因此证书已过期 我读过 使用新证书发布将使应用程序失败 因为它将使用不同的密钥进行签名 因此我认为我需要使用相同的证书但不知道如何更新它 如果您正在寻求快速解决方案 那么您
  • 如何使用 ClickOnce 安装 COM

    我已经安装了使用 TeeChart ActiveX COM 使用 ClickOnce 绘制图表的组件 如果我使用 regsvr32 teechart8 ocx 手动注册 TeeChart 我的 应用程序工作正常 但我想要并且需要使用安装应用
  • 使用 mage.exe 为 *.deploy 文件创建 ClickOnce 部署清单

    当应用程序文件具有 deploy 扩展名时 如何使用 mage exe 创建 ClickOnce 部署清单 有些人放弃并使用 MSBuild exe 和GenerateDeploymentManifest 任务 如果想直接使用mage ex
  • 自签名证书到验证码证书?

    我们通过 ClickOnce 和我们创建的自签名者证书部署了一个 Windows 应用程序 我们现在正在寻求从 VeriSign 等证书颁发机构获取 Authenticode 证书 当我们开始使用新证书签署 ClickOnce 清单时 我们

随机推荐