InstallShield 项目的 Stylecop
Stylecop for InstallShield project
我需要确保 InstallShield 只允许设置。我想 运行 在 CI 服务器上进行此检查。
换句话说 Component
table 我想检查 Attributes
字段只允许值(<td>8</td>
,<td>1</td>
)
<table name="Component">
<col key="yes" def="s72">Component</col>
<col def="S38">ComponentId</col>
<col def="s72">Directory_</col>
<col def="i2">Attributes</col>
<col def="S255">Condition</col>
<col def="S72">KeyPath</col>
<col def="I4">ISAttributes</col>
<col def="S255">ISComments</col>
<col def="S255">ISScanAtBuildFile</col>
<col def="S255">ISRegFileToMergeAtBuild</col>
<col def="S0">ISDotNetInstallerArgsInstall</col>
<col def="S0">ISDotNetInstallerArgsCommit</col>
<col def="S0">ISDotNetInstallerArgsUninstall</col>
<col def="S0">ISDotNetInstallerArgsRollback</col>
<row>
<td>Adapter</td>
<td>{05A86BD3-38F8-40CC-8A16-AB643A555787}</td>
<td>ADAPTER</td>
<td>8</td>
<td/>
<td>adapter.dll</td>
<td>1</td>
<td/>
<td/>
<td/>
<td>/LogFile=</td>
<td>/LogFile=</td>
<td>/LogFile=</td>
<td>/LogFile=</td>
</row>
直接的方法是创建 PowerShell 脚本来将项目文件解析为 XML,找到相应的值,并确保它们在允许的范围内。
是否有更多优雅 方法来做到这一点,比如类似于 StyleCop 的工具?由于自定义 PowerShell 脚本单独支持的成本很高。
感谢 Steve 的评论,我得到了工作 PowerShell
版本,无需手动解析 InstallShield
项目文件。
使用 Automation Interface 检查组件的错误配置非常容易。
$projectFile = "project.ism"
$project = new-object -comobject IswiAuto16.ISWiProject
$project.OpenProject($projectFile)
Foreach ($feature in $project.ISWiFeatures)
{
Foreach ($component in $feature.ISWiComponents)
{
if(<check $component for an errorneous config>)
{
<report an issue here>
}
}
}
$project.CloseProject()
我需要确保 InstallShield 只允许设置。我想 运行 在 CI 服务器上进行此检查。
换句话说 Component
table 我想检查 Attributes
字段只允许值(<td>8</td>
,<td>1</td>
)
<table name="Component">
<col key="yes" def="s72">Component</col>
<col def="S38">ComponentId</col>
<col def="s72">Directory_</col>
<col def="i2">Attributes</col>
<col def="S255">Condition</col>
<col def="S72">KeyPath</col>
<col def="I4">ISAttributes</col>
<col def="S255">ISComments</col>
<col def="S255">ISScanAtBuildFile</col>
<col def="S255">ISRegFileToMergeAtBuild</col>
<col def="S0">ISDotNetInstallerArgsInstall</col>
<col def="S0">ISDotNetInstallerArgsCommit</col>
<col def="S0">ISDotNetInstallerArgsUninstall</col>
<col def="S0">ISDotNetInstallerArgsRollback</col>
<row>
<td>Adapter</td>
<td>{05A86BD3-38F8-40CC-8A16-AB643A555787}</td>
<td>ADAPTER</td>
<td>8</td>
<td/>
<td>adapter.dll</td>
<td>1</td>
<td/>
<td/>
<td/>
<td>/LogFile=</td>
<td>/LogFile=</td>
<td>/LogFile=</td>
<td>/LogFile=</td>
</row>
直接的方法是创建 PowerShell 脚本来将项目文件解析为 XML,找到相应的值,并确保它们在允许的范围内。
是否有更多优雅 方法来做到这一点,比如类似于 StyleCop 的工具?由于自定义 PowerShell 脚本单独支持的成本很高。
感谢 Steve 的评论,我得到了工作 PowerShell
版本,无需手动解析 InstallShield
项目文件。
使用 Automation Interface 检查组件的错误配置非常容易。
$projectFile = "project.ism"
$project = new-object -comobject IswiAuto16.ISWiProject
$project.OpenProject($projectFile)
Foreach ($feature in $project.ISWiFeatures)
{
Foreach ($component in $feature.ISWiComponents)
{
if(<check $component for an errorneous config>)
{
<report an issue here>
}
}
}
$project.CloseProject()