1

我的问题有点与这个现有的问题有关

如何使用每个用户的自定义设置部署桌面 .Net 应用程序

但是,我了解使用应用程序设置的想法,但我找不到相关信息,我应该如何为不同的客户部署应用程序设置?

我们有一个可以正常工作的自定义设置系统,但是当应用程序第一次运行时,它需要知道一些事情,例如公司名称和应用程序服务器。这些显然会因客户而异。

我不希望用户在第一次运行时输入这些设置,因为在大多数情况下,应用程序将由组策略部署。

目前我的想法是在每个客户的单独构建中拥有某种设置文件。这是要走的路,还是我错过了对“客户资料”这个想法的某种原生支持?

编辑:

更多信息可能有助于人们理解我的问题。

这是一个企业应用程序,由中央数据库和应用程序服务器以及 100 个客户端应用程序的安装组成。我需要能够为客户端应用程序提供一些应用程序设置,这些设置对于不同的客户来说显然是不同的。

4

3 回答 3

0

鉴于它是一个企业环境,您是否考虑过使用 ClickOnce?我们主要通过启动参数取得成功,例如http://servername/OurApp.application?environment=uat

它并不总是可扩展的,但您可以使用 GET 变量传递参数并在通过 HTTP 传递时解析生成的 QueryString - http://msdn.microsoft.com/en-us/library/ms172242.aspx

您可以在 QueryString 中传递设置,或在数据库中创建它们,生成(散列?)键并构建该引用唯一的 QueryString(具有好奇的用户无法操作 URI 的额外好处并伪造一组不同的参数)。

于 2010-06-01T19:28:36.133 回答
0

许多应用程序在第一次启动时会要求您进行一些初始设置(Microsoft Office、Visual Studio 等)。所以这种行为是用户普遍知道的。

也许问题更多,这些初始设置会恢复您的应用程序的更新。为此,您可以将数据保存在注册表中的版本独立路径中或低于 %AppData% 的某个位置。

此外,在第一次启动时预填充这些对话框也会很有帮助,方法是从机器的某处获取这些信息(例如,公司名称可以从注册表 [HKLM\Software\Microsoft\WindowsNT\CurrentVersion\RegisteredOrganization] 或应用程序服务器获取网关地址,AD 服务器,最常见的匹配项)。

因此,在最好的情况下,用户将看到一个已经正确填写的表格,只需按 Enter 键,或者他只进行必要的更改,而不是自己填写完整的对话框。


更新:

因此,如果用户不知道 Application Server 路径。谁做的?这些信息在哪里?也许您可以强制您的客户以同样的方式提供这些信息。也许他们在登录脚本中设置了一些环境变量,或者他们将包含所需信息的文件放在全局可访问的位置(例如登录脚本所在的位置)。

于 2010-01-13T11:38:31.467 回答
0

如果我理解正确,您想为每个用户部署一个预先定制的软件。您可以使用 WIX 为每个客户创建一个 MSI 包。您可以在面向客户的 msi 中提供多个用户设置。您可以根据存储客户的数据源动态生成 W​​IX-XML-Document。是有点工作,但后来节省了很多工作。通过 WIX 创建 MSI 可以很容易地集成到构建过程中。

于 2010-01-13T11:38:48.860 回答