如何从 visual studio 2013 c# 项目的安装程序中获取变量?

How can I obtain a variable from the installer of a visual studio 2013 c# project?

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

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

"ServerPath"\\servername\someshare.

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

有人知道我该怎么做吗?

感谢您的帮助!

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

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

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

return ActionResult.Success;
}

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

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

  2. 那个对话框(比如 TEXTBOXES(A) 对话框)有一个属性 window,其中用户输入的文本与名称如 EDITA1、EDITA2 等的属性相关联。

  3. 使用带有您选择的名称的注册表视图在您需要的地方创建您的注册表项,并为其提供 [EDITA1] 区分大小写的值,这会导致实际值存储在注册表。

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