【问题标题】:How can I obtain a variable from the installer of a visual studio 2013 c# project?如何从 Visual Studio 2013 c# 项目的安装程序中获取变量?
【发布时间】:2015-04-04 04:29:26
【问题描述】:

我正在使用带有 wpf C# 项目类型的 Visual Studio 2013。我的目标是在安装我的软件期间,我可以提示输入一个将是 unc 路径的变量。基本上在安装过程中,我将设置该程序将使用的服务器数据目录的路径

在安装程序上只有一个带有标签的文本框,我可以在安装期间将值存储在注册表中或从代码中访问。

“服务器路径”\\servername\someshare.

我已经在网上搜索了几天并尝试了 installshield LE 以及带有配置 -> 应用程序设置的基本 Visual Studio 安装程序,但我似乎无法找到一种方法来完成看似简单的事情。

有人知道我该怎么做吗?

感谢您的帮助!

【问题讨论】:

  • 所以... ClickOnce 不允许您这样做?

标签: c# wpf visual-studio-2013 installation installshield


【解决方案1】:

如果您有适用于 VS 2013 的 Visual Studio 安装程序插件(不是 InstallShield),那么这是使用该工具的正常方式:

  1. 使用添加对话框在安装项目中创建一个文本框对话框。看起来你已经走到了那一步。

  2. 该对话框(比如说它是 TEXTBOXES(A) 对话框)有一个属性窗口,用户输入的文本在其中与名称为 EDITA1、EDITA2 等的属性相关联。

  3. 使用带有您选择的名称的注册表视图在您需要的地方创建您的注册表项,并为其指定区分大小写的值 [EDITA1],从而将实际值存储在注册表中。

这些 VS 设置项目的缺点之一是您无法在输入时验证输入,因此验证很麻烦。

【讨论】:

  • 谢谢菲尔,这对我有帮助!把我的头撞在墙上几天,一无所获。
  • 快速提问。我又一次被卡住了:(我下载了 Visual Studio 2013 扩展,它带回了您引用的安装项目。但是我如何进入“添加对话框”部分?我在任何地方都找不到它。你有什么菜单去打开它?
  • 编辑:没关系我找到了。对于那些可能想知道的人,请转到用户界面编辑器并右键单击对话框类别(如开始进度或结束),然后单击添加对话框。我试图在现有对话框之间插入它,但没有收到该选项。
【解决方案2】:

要在安装过程中获取设置文本框中设置的路径,您可以创建一个C# custom action 并在其代码中访问与您的文本框控件关联的属性的值。要在 C# 代码中获取和设置安装程序属性,您可以按照以下示例进行操作:

public static ActionResult CustomAction1(Session session)
{
// get property
Variable = session["PROPERTY"];

// set property
session["PROPERTY"] = variable;

return ActionResult.Success;
}

【讨论】:

  • 感谢您提供的信息!我会试一试。
猜你喜欢
  • 2014-10-04
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多