使用 VS 2015 Professional 创建无需管理员权限即可运行的安装程序

2023-12-21

我正在尝试创建一个无需管理员权限即可运行的安装文件(MSI)。为此,我尝试了以下选项。

  1. 我已经设置了安装所有用户财产给false如下。
  1. 还设置了安装所有用户可见 to false
  1. 我还更改了默认位置[应用程序数据文件夹]

更改上述属性后,仍然需要管理员权限才能执行使用安装项目创建的 MSI 文件。

你能帮我解决这个问题吗?

提前致谢。


当您使用 Orca 打开 MSI 时(或同等 MSI 查看器 https://stackoverflow.com/questions/48482545/how-can-i-compare-the-content-of-two-or-more-msi-files/48482546#48482546),你看到了吗"UAC Compliant"复选框已选中?示例截图在这里:

你真的应该使用更灵活、更强大的 MSI 工具 https://stackoverflow.com/a/50229840/129130比 Visual Studio 安装程序项目。它们有多种用途,但缺乏灵活性,并且存在许多其他问题:VS项目问题总结 https://stackoverflow.com/questions/47936435/visual-studio-publish-project-into-one-simple-installer/47944893#47944893 (简写 https://stackoverflow.com/questions/2635671/why-use-windows-installer-xml-wix-over-vdproj/2637666#2637666).

每用户设置被认为是有害的:针对每用户设置的一些警告 https://stackoverflow.com/a/52710390/129130。这是对此还有一个答案 https://stackoverflow.com/a/56403393/129130.

WiX 中简单的每用户文件夹安装(在“PUT-GUID-HERE”显示的位置插入大写 GUID(出现 2 次)-你可以使用这个 GUID 生成器 https://www.guidgenerator.com/online-guid-generator.aspx):

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="PerUserSample" Language="1033" Version="1.0.0.0" Manufacturer="-" UpgradeCode="PUT-GUID-HERE">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" InstallPrivileges="limited" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes" />
    <UIRef Id="WixUI_Mondo" />

    <Feature Id="ProductFeature" Title="PerUserSample" Level="1" />

    <Directory Id="TARGETDIR" Name="SourceDir">

      <Directory Id="AppDataFolder">
        <Directory Id="Something" Name="Something">
          <Component Feature="ProductFeature" Guid="PUT-GUID-HERE">

            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]\Test"
                           Name="installed" Type="integer" Value="1" KeyPath="yes"/>

            <File Source="C:\Windows\Notepad.exe" />

            <RemoveFolder Id="Something" Directory="Something" On="uninstall" />

          </Component>
        </Directory>
      </Directory>
      
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="PerUserSample" />
      </Directory>

    </Directory>

  </Product>

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

使用 VS 2015 Professional 创建无需管理员权限即可运行的安装程序 的相关文章

随机推荐

  • Sqlalchemy 无法在事务块内运行

    我正在尝试从 python 脚本在 redshift 中运行查询 但出现错误 sqlalchemy exc InternalError psycopg2 InternalError ALTER EXTERNAL TABLE cannot r
  • 使用 childRouter 时的 Durandal 路由器/生命周期事件

    在使用 Durandal 构建的单页应用程序中 我有一个设置视图 其中包含不同的部分 我使用 childRouter 来解析不同的部分 在此应用程序中 许多代码挂钩到 Durandal 使用的组合生命周期事件 例如 这个自定义绑定 ko b
  • 如何引发 Shutil.SameFileError?

    我正在努力提高一个shutil SameFileError用于单元测试但未能成功 问题是没有引发错误 import unittest class TestErrors unittest TestCase Unit testing of er
  • 如果未通过单元测试,如何拒绝来自本地存储库的原始存储库的 git 推送?

    我有一个拥有完全访问权限的原始存储库 并且我不希望将代码成功推送到此存储库 除非正在推送的代码成功通过了我的单元测试 我看到了许多 git hooks update 脚本的示例 它们似乎分为几个不适合我的用例的类别 例如 在 http gi
  • 检测 Windows Phone (7.1) 中的捏合缩放

    根据 Silverlight 工具包 手势侦听器将被视为已弃用 对于所有 Windows Phone 7 1 SDK 开发 应将手势侦听器视为已弃用 并且没有其他可用的建议 在没有手势侦听器的情况下 在 WP7 中检测捏合 缩放手势的最佳方
  • ADO.NET 2.0 Interbase 驱动程序和 ASP.NET 错误的程序集引用?

    我正在寻找超过 12 个小时来找到针对这个特定问题的正确解决方案 我有一个利用 Interbase XE 数据库的 ASP MVC NET Framework 4 5 应用程序 只要我在自己的机器上本地运行就可以正常工作 但是 当我尝试将站
  • 禁用 docker-compose 项目的自动启动

    我有一个使用 Docker for Mac 的 docker compose 项目 它会在我启动计算机时自动启动 我通常以以下方式开始项目docker compose up d 但即使是跑步docker compose stop在关闭自动启
  • 如何使用 pngBitmapEncoder 保存图像

    根据图像编码示例here http msdn microsoft com en us library ms748873 aspx imageformats我应该能够使用png位图编码器 http msdn microsoft com en
  • 使用 C++ lambda 进行部分应用?

    编辑 我在下面使用咖喱 但已被告知这是部分应用 我一直在试图弄清楚如何用 C 编写柯里函数 而且我实际上已经弄清楚了 include
  • 有 Windows 的良好 Valgrind 替代品吗?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 当我发现 Valgrind 仅适用于 Linux 时 我正在研究 Valgrind 来帮助改进
  • 如何在C#中获取TPL任务线程的引用?

    当我创建任务时 Task task Task Factory StartNew gt someMethod args 在 C 4 0 中 如何获取此任务的线程的引用 该任务是否有可能在创建该任务的同一个线程中执行或生成多个线程 Update
  • 与 Redux 反应?那么“背景”问题呢?

    我通常在 Stack 上发布与代码相关的内容 但这更多的是关于社区总体想法的问题 似乎有很多人提倡使用 Redux 和 React 来管理数据 状态 但是在阅读和学习两者时 我发现了一些看起来不太正确的东西 Redux 在此页面底部 htt
  • 如何获取datagrid列绑定的字段?

    在我的 xaml 中 我修改了每个列标题以包含一个按钮 对于命令参数 我想使用列的数据字段名称 而不是标题内容 例如 我想要 JOB TITLE 而不是标题内容的 职位名称 对于标题内容我会使用
  • 在 VSTS 中创建 Kubernetes 端点会生成错误

    设置新的 Kubernetes 端点并单击 验证连接 时出现错误消息 Kubconfig 不包含用户字段 请检查 kubeconfig 始终显示 尝试了多种输出配置文件的方法均无效 我还从网上复制并粘贴了许多示例配置文件 但最终都遇到了相同
  • Google 表格当前用户

    我希望你能帮助我 我希望在单元格中显示 google 工作表的当前用户以进行 vlookup 我添加了一个脚本来将登录的用户名拉入脚本库 但我无法将 logger log 信息转储到 google 工作表中 任何信息都会很棒 谢谢 奈杰尔
  • 无法使用 Elixir 连接到远程 SSH 服务器

    我已经尝试使用 elixir 连接到远程 ssh 服务器一段时间了 这就是我在 IEX 中所做的 Macintosh elixir logglycious master gt iex 15 07 20 0 11 Erlang OTP 17
  • 应用程序的启动时间

    在android中启动应用程序并计算其启动时间的最佳方法是什么 如果可以用一些代码完成 那就更好了 嗯 首先 更准确地说 我应该指出 在 Android 中 您启动的是 Activity 而不是应用程序 因此 由于应用程序的入口点是处理 L
  • 无法在 .NET standard 2 项目中使用实体框架

    如何在 NET Standard 项目中使用实体框架或类似的东西 NET Standard 2 似乎不支持 EF 这真的很烦人 所以我尝试使用 Microsoft EntityFrameworkCore SqlServer 和 icroso
  • 我可以使用 Razor Intellisense 查看 .html 文件,就好像它们是 Visual Studio 2010 中的 .cshtml 文件一样吗?

    我已经让 Net MVC3 来处理 html 和其他自定义扩展 就像处理 cshtml 文件一样 但 VS2010 不会突出显示 Razor 语法或显示它的 Intellisense 如何让 VS2010 将 html 文件识别为 csht
  • 使用 VS 2015 Professional 创建无需管理员权限即可运行的安装程序

    我正在尝试创建一个无需管理员权限即可运行的安装文件 MSI 为此 我尝试了以下选项 我已经设置了安装所有用户财产给false如下 还设置了安装所有用户可见 to false 我还更改了默认位置 应用程序数据文件夹 更改上述属性后 仍然需要管