Я хочу автоматически создать базовую линию для каждого проекта в своем проекте корпоративного архитектора с помощью PowerShell.
Как создать базовую линию из PowerShell?
Мой коддо сих пор получают все модели высокоуровневых пакетов IE, для которых я хочу создать новую базовую линию.
$conString = "private connection string"
## implementation do not chage
add-type -path “C:\Program Files (x86)\Sparx Systems\ea\Interop.EA.dll”
$ea = New-Object -ComObject EA.Repository
$ea.OpenFile($conString);
function Process-Packages($packages)
{
if(!$packages) { throw [System.ArgumentNullException]::new('packages'); }
if(0 -ge $packages.Count) { return; }
## create a baseline for each package
}
foreach($model in $ea.models)
{
Process-Packages $model.packages;
}
$ea.CloseFile();
$ea.Exit();
Обновление: При использовании VS я нашел объект, который ищунаходится под EA.ProjectClass , который предоставляет соответствующие функциональные возможности для создания пакета:
public virtual bool CreateBaseline(string PackageGUID, string Version, string Notes)
Member of EA.ProjectClass
Summary:
Creates a baseline on the specified package.
Attributes:
[System.Runtime.InteropServices.DispIdAttribute(66)]
и существует относительная реализация getbaselines
public virtual string GetBaselines(string PackageGUID, string ConnectString)
Member of EA.ProjectClass
Summary:
Returns an xml string containing the list of guids available for that package.
Attributes:
[System.Runtime.InteropServices.DispIdAttribute(65)]