Powershell InstallShield项目的Stylecop

Powershell InstallShield项目的Stylecop,powershell,continuous-integration,installshield,code-inspection,Powershell,Continuous Integration,Installshield,Code Inspection,我需要确保InstallShield只允许设置。我想在CI服务器上运行此检查 换句话说,在组件表中,我想检查属性字段仅允许值(8,1) 组成部分 组件 目录_ 属性 条件 键槽 ISAttributes 意见 ISScanAtBuildFile ISRegFileToMergeAtBuild IsDotNetInstallarGSInstall IsDotNetInstallarGSCommit IsDotNetInstallarGsUninstall IsDotNetInstallargsR

我需要确保InstallShield只允许设置。我想在CI服务器上运行此检查

换句话说,在
组件
表中,我想检查
属性
字段仅允许值(
8
1


组成部分
组件
目录_
属性
条件
键槽
ISAttributes
意见
ISScanAtBuildFile
ISRegFileToMergeAtBuild
IsDotNetInstallarGSInstall
IsDotNetInstallarGSCommit
IsDotNetInstallarGsUninstall
IsDotNetInstallargsRollback
适配器
{05A86BD3-38F8-40CC-8A16-AB643A5555787}
适配器
8.
适配器.dll
1.
/日志文件=
/日志文件=
/日志文件=
/日志文件=
简单的方法是创建PowerShell脚本,将项目文件解析为XML,找到相应的值,并确保它们在允许的范围内


有没有像StyleCop这样的工具更优雅的方法呢?由于自定义PowerShell脚本本身的支持成本很高。

感谢Steve的评论,我可以使用
PowerShell
版本,而无需手动解析
InstallShield
项目文件

使用它很容易检查组件的错误配置

$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()
$projectFile=“project.ism”
$project=新对象-comobject IswiAuto16.ISWiProject
$project.OpenProject($projectFile)
Foreach($project.ISWiFeatures中的feature)
{
Foreach($feature.ISWiComponents中的组件)
{
if()
{
}
}
}
$project.CloseProject()

如果可以,可以使用InstallShield自动化界面。请参阅我对另一篇关于在C#中使用自动化的示例的帖子的回答:
$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()