【问题标题】:Programmatically create InstallShield packages以编程方式创建 InstallShield 包
【发布时间】:2012-11-28 15:57:00
【问题描述】:

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

InstallShield Automation Using c#

但是我需要的是这个:

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

如果可能以及如何进行,请告诉我。

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

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

【问题讨论】:

  • 我知道这并不完全符合您的要求,但如果您似乎找不到理想的 C# 解决方案,我对 Inno Setup 的功能印象深刻,而且它是免费的。还支持脚本。 jrsoftware.org/isinfo.php#features

标签: c# .net installation installshield


【解决方案1】:

简单来说,在 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

--贾格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2013-07-25
    • 2013-07-22
    • 2018-06-04
    • 2015-03-17
    • 2013-11-24
    相关资源
    最近更新 更多