C# Installshield 2009多个串行密钥
我一直在使用Installshield 2009和C来创建一个安装项目,该项目在安装之前验证一个串行密钥,即在.NET中编写的算法。它工作得很好 然而,我有几个版本的产品。目前,我为每个版本使用单独的安装项目。但是,许多文件都是相同的,只是包含或不包含文件的变化很小。如果我能有一个单独的部署项目,根据检测到的有效串行密钥安装某些文件,我会很高兴 基本上,我想知道Installshield是否可以实现这种功能C# Installshield 2009多个串行密钥,c#,installshield,installshield-2009,C#,Installshield,Installshield 2009,我一直在使用Installshield 2009和C来创建一个安装项目,该项目在安装之前验证一个串行密钥,即在.NET中编写的算法。它工作得很好 然而,我有几个版本的产品。目前,我为每个版本使用单独的安装项目。但是,许多文件都是相同的,只是包含或不包含文件的变化很小。如果我能有一个单独的部署项目,根据检测到的有效串行密钥安装某些文件,我会很高兴 基本上,我想知道Installshield是否可以实现这种功能 提前感谢Windows Installer不太适合您描述的场景,至少除非您花时间使用某种
提前感谢Windows Installer不太适合您描述的场景,至少除非您花时间使用某种许可技术来防止使用未正确安装的文件。您可以让您的串行验证dll也设置一个属性,各种功能或组件的条件关闭,但一个转换可以很容易地回避这一点。除非您已经或可以花时间实施许可证验证,否则最好的办法是为每个不同的允许文件集维护单独的版本。但是,您可以将这些合并到单个项目中 根据构建之间的差异,我认为有两种互补的方法可以获得单独的SKU。第一个版本最容易在每个版本的基础上指定,您可以选择要构建的版本,例如从命令行。第二个版本与版本无关,可以手动更新,也可以在命令行生成中重写 释放标志 您可以将项目组分离为额外的功能(可能是隐藏的),这样它们就不会使功能选择对话框混乱,然后在每个版本上使用发布标志在生成时包括或排除这些文件。如果您正在更改内容文件,但在不同的SKU中继续使用相同的自定义操作DLL,那么这可能是最有效的 路径变量 可以使用path变量指定自定义操作DLL的路径,然后可以使用该变量覆盖文件的源位置。确保文件或二进制表中的相应条目在尖括号中使用自己的变量,然后您也可以在构建时单独交换它。如果需要更改自定义操作DLL,这是有意义的,并且可以与发布标志一起使用
您可以在运行时添加和删除功能。这可以通过install shield脚本中的installer properties或b来完成 首先,将所有版本的所有功能添加到项目中。您将确保未选择安装它们。然后在运行时使用方法a或方法b选择一个 可以通过多种方式设置安装程序属性。命令行切换到安装程序、操作系统版本、存在的某些注册表项或通过DLL中的自定义逻辑。根据安装程序属性的特定值,可以包括/排除功能 对于b,脚本可以访问功能树,并可以使用FeatureSelectItem等基于自定义逻辑选择和取消选择它们