2

我一直在互联网上搜索使用 c# 创建 InstallShield 设置的方法。我知道有一个“InstallShield 自动化库”可供它使用。但是,到目前为止,我看到的所有示例都只是自动化了构建已经创建的项目的任务。

使用 c# 安装Shield Automation

但是我需要的是:

  1. 我将首先手动创建一个 InstallShield 项目 (.ISM),指定文件夹结构等详细信息
  2. 然后,我想创建一个程序,该程序将使用新版本名称复制 ISM 文件,将文件添加到新创建的项目文件中,然后构建它。

请让我知道它是否可能以及如何进行。

编辑:我才知道在安装过程中创建的目录称为功能。所以这个问题可能被解读为“如何向项目文件添加功能并将文件添加到该功能”

EDIT2我在这里找到了一种迭代它的方法:http:
//blogs.flexerasoftware.com/installtalk/2010/12/getting-started-with-installshield-automation-and-c.html
也许这可以帮助某人准备答案.

4

1 回答 1

3

简单来说,在 MSI 世界中,一个文件属于一个组件。如果安装了与组件关联的功能,则将安装该文件。

因此,您的任务是创建一个组件,将文件添加到其中并将其与功能相关联。

  1. 创建 ISWiProject 对象(比如 proj)。
  2. 调用 proj.OpenProject 并打开现有项目。
  3. 调用 proj.AddComponent 并接收 ISWiComponent 对象(比如 comp)。
  4. 设置组件的目标文件夹(使用 comp.Destination 属性)。
  5. 调用 comp.AddFile 以指定文件的源位置。
  6. 将组件与现有功能相关联。例如,如果您有一个名为 feature1 的功能,请使用以下内容: proj.ISWiFeatures.Item("feature1").AttachComponent(comp)
  7. 使用 proj.ProductVersion 根据您的需要更改安装程序版本。

您可以通过自动化界面做很多事情。请参阅此处的文档:http: //helpnet.installshield.com/installshield16helplib/IHelpAutoISWiProject.htm

--贾格

于 2012-12-13T17:30:05.473 回答