Str*_*pes 0 c# windows windows-installer wix profiles
我们的客户端仅允许在以管理员身份登录时安装应用程序。必须为机器的当前用户安装需要安装的应用程序。该应用程序安装正常,当我需要在用户的 appdata/user 配置文件文件夹中放置一个配置文件时,我的问题就出现了。由于这是他们想要的地方,目前配置正在安装时被删除到管理员配置文件中。我如何解决这个问题,有没有办法让我检查安装是否有其他配置文件并可能写信给他们,但这感觉很脏。
交叉引用:一个相关的问题是当您有一个普通用户无法写入的设置文件时。这是消除这种情况的方法列表: System.UnauthorizedAccessException while running .exe under program files。
我将只总结其他人基本上提到的内容,并尝试做一些“小参考”。
也许看看下面提到的Win10 勒索软件保护功能,了解有关此 Windows 更改如何影响用户配置文件部署的重要花絮。
有很多方法可以将文件部署到计算机上的每个用户,但是大多数方法都存在许多缺点和问题。老实说,所有方法都存在问题,以一种或另一种形式存在。
下面首先列出一些常见的部署方法,然后提到一些“基于云的方法”。将来,此讨论可能会变得无关紧要,因为设置完全基于云并实时同步,并且部署可能完全从基于机器的部署切换到基于用户的部署。我们将不得不等待,看看结果如何。
HKCU\Software\MyCompany\MyApplication\Version\HKCU_KeyPath = [ComputerName]为了使键路径值成为“移动目标”,以便在用户登录新计算机时可靠地触发自我修复(尽管漫游配置文件带来在现有的 HKCU 设置中)。HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install在每个用户登录时将每个用户的注册表项写入并写入每个用户的 HKCU 配置单元。这可能与 ActiveSetup 冲突 - 据我所知。我从来没有机会测试它。终端服务器的打包通常由专门的专业服务器团队完成。随着数据存储似乎转移到云端,数据文件部署的常见方法可能很快就会过时。
我不喜欢选项 3(自行修复)和选项 4(Active Setup) 了,虽然我已经使用过很多次了——而且如果做得对,它们确实可以工作。但是,它们无法避免漫游配置文件问题(文件未在用户登录的所有系统上复制到位)以及在运行修复时无法访问 MSI 安装源 - 这可能会导致部署问题。在重置设置的重大升级过程中也经常出现并发症,并且在终端服务器上自我修复失败。由于勒索软件保护或安全软件干扰,自我修复可能无法安装到用户配置文件。选项 4(Active Setup)中指定的命令行可能有问题并清除数据(例如,您为 msiexec.xml 启用了错误的标志)。exe 意外修复并强制覆盖设置文件 - 这通常不会被发现,直到为时已晚并且损坏已经完成)。现在还有更多的问题让我望而却步。两种方法都有相似但略有不同的局限性。
我越来越喜欢基于云的方法来使本地(和隔离的)用户设置文件成为过去 - 但我很少能够以这种方式部署。不过,这些云方法可能会面临防火墙/代理问题和网络连接问题- 可能还有其他一些我还不知道的事情(现在开发人员将与 DBO 而不是部署专家等争吵......;-))。分布式计算有其谬误:https : //en.wikipedia.org/wiki/Fallacies_of_distributed_computing. 另外:在基于云的方法中,允许将设置备份到磁盘的应用程序仍然可能是一个好主意,因此显然仍然需要一些文件管理 - 或者您只是导出几个数据库表?另外:如果您安装应用程序的试用版,您可能希望它能够在完全没有网络连接的情况下运行 - 以防用户位于非常严密的防火墙后面。由于技术原因不允许用户测试应用程序的功能,这是一个代价高昂的错误。
选项 1 和 2的最大好处是,即使在触发修复时原始安装介质丢失,它们也能正常工作。这对于家庭和小型办公室部署尤其重要,在这些部署中,如果没有集中的软件包共享,部署可能会相当随意。您可以通过在安装期间使用缓存方法在系统上缓存整个 MSI(在 Installshield 中可用,我没有检查 WiX 或 Advanced Installer)来解决这个问题(缺少源 MSI)。
| 归档时间: |
|
| 查看次数: |
2211 次 |
| 最近记录: |