feat: support parallel legacy and sandbox extensions

This commit is contained in:
Meik
2026-07-13 15:09:21 +02:00
parent b8ad580ae5
commit 58dcc9f943
89 changed files with 10102 additions and 123 deletions

View File

@@ -0,0 +1,48 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<M42LegacyAssembliesDir Condition="'$(M42LegacyAssembliesDir)' == ''">$(MSBuildThisFileDirectory)BasePackage\Assemblies\svc\bin</M42LegacyAssembliesDir>
<M42LegacyPackageTemplateDir Condition="'$(M42LegacyPackageTemplateDir)' == ''">$(MSBuildThisFileDirectory)PackageTemplate</M42LegacyPackageTemplateDir>
<M42LegacyPackageOutputRoot Condition="'$(M42LegacyPackageOutputRoot)' == ''">$(MSBuildThisFileDirectory)..\artifacts\Legacy\$(Configuration)</M42LegacyPackageOutputRoot>
<M42LegacyPackageName Condition="'$(M42LegacyPackageName)' == ''">C4IT - F4SD M42 ESM Integration Legacy 12.1.3-25.x</M42LegacyPackageName>
<M42PackageBuildScript Condition="'$(M42PackageBuildScript)' == ''">$(MSBuildThisFileDirectory)..\F4SDM42WebApi\BuildM42Package.ps1</M42PackageBuildScript>
<M42SignAssemblies Condition="'$(M42SignAssemblies)' == ''">false</M42SignAssemblies>
<M42SignTool Condition="'$(M42SignTool)' == ''">$(MSBuildThisFileDirectory)..\..\..\Common Code\Tools\signtool.exe</M42SignTool>
<M42SignTimestampUrl Condition="'$(M42SignTimestampUrl)' == ''">http://rfc3161timestamp.globalsign.com/advanced</M42SignTimestampUrl>
<M42SignDescription Condition="'$(M42SignDescription)' == ''">C4IT - F4SD - WebApi for M42 Legacy</M42SignDescription>
<M42SignOptions Condition="'$(M42SignOptions)' == ''">/a</M42SignOptions>
<_M42SignCertificateArgs Condition="'$(M42SignCertificateFile)' != '' AND '$(M42SignCertificatePassword)' != ''">/f &quot;$(M42SignCertificateFile)&quot; /p &quot;$(M42SignCertificatePassword)&quot;</_M42SignCertificateArgs>
<_M42SignCertificateArgs Condition="'$(M42SignCertificateFile)' != '' AND '$(M42SignCertificatePassword)' == ''">/f &quot;$(M42SignCertificateFile)&quot;</_M42SignCertificateArgs>
<_M42SignCertificateArgs Condition="'$(_M42SignCertificateArgs)' == '' AND '$(M42SignCertificateThumbprint)' != ''">/sha1 &quot;$(M42SignCertificateThumbprint)&quot;</_M42SignCertificateArgs>
<_M42SignCertificateArgs Condition="'$(_M42SignCertificateArgs)' == ''">$(M42SignOptions)</_M42SignCertificateArgs>
</PropertyGroup>
<Target Name="M42Legacy_CopyAssemblies" AfterTargets="Build">
<MakeDir Directories="$(M42LegacyAssembliesDir)" />
<ItemGroup>
<_M42LegacyOutputs Include="$(TargetDir)C4ITF4SDM42WebApi.dll;$(TargetDir)C4ITF4SDM42WebApi.pdb;$(TargetDir)C4ITF4SDM42WebApiHelper.dll;$(TargetDir)C4ITF4SDM42WebApiHelper.pdb" />
<_M42LegacyExistingOutputs Include="@(_M42LegacyOutputs)" Condition="Exists('%(Identity)')" />
</ItemGroup>
<Copy SourceFiles="@(_M42LegacyExistingOutputs)" DestinationFolder="$(M42LegacyAssembliesDir)" SkipUnchangedFiles="true" />
</Target>
<Target Name="M42Legacy_SignAssemblies" AfterTargets="M42Legacy_CopyAssemblies" BeforeTargets="M42Legacy_BuildPackage" Condition="'$(M42SignAssemblies)' == 'true'">
<ItemGroup>
<_M42LegacyAssembliesToSign Include="$(M42LegacyAssembliesDir)\*.dll" />
</ItemGroup>
<Error Condition="!Exists('$(M42SignTool)')" Text="signtool.exe was not found: $(M42SignTool)." />
<PropertyGroup>
<_M42LegacyAssembliesToSignArgs>@(_M42LegacyAssembliesToSign->'&quot;%(FullPath)&quot;', ' ')</_M42LegacyAssembliesToSignArgs>
</PropertyGroup>
<Exec Condition="'@(_M42LegacyAssembliesToSign)' != ''" Command="&quot;$(M42SignTool)&quot; sign $(_M42SignCertificateArgs) /tr &quot;$(M42SignTimestampUrl)&quot; /td SHA256 /fd SHA256 /d &quot;$(M42SignDescription)&quot; $(_M42LegacyAssembliesToSignArgs)" />
</Target>
<Target Name="M42Legacy_BuildPackage" AfterTargets="M42Legacy_CopyAssemblies" Condition="'$(M42BuildPackage)' == 'true'">
<GetAssemblyIdentity AssemblyFiles="$(M42LegacyAssembliesDir)\C4ITF4SDM42WebApi.dll">
<Output TaskParameter="Assemblies" ItemName="_M42LegacyAssemblyIdentity" />
</GetAssemblyIdentity>
<PropertyGroup>
<_M42LegacyPackageVersion>@(_M42LegacyAssemblyIdentity->'%(Version)')</_M42LegacyPackageVersion>
</PropertyGroup>
<Exec Command="powershell.exe -NoProfile -ExecutionPolicy Bypass -File &quot;$(M42PackageBuildScript)&quot; -TemplateDir &quot;$(M42LegacyPackageTemplateDir)&quot; -AssembliesDir &quot;$(MSBuildThisFileDirectory)BasePackage\Assemblies&quot; -OutputRoot &quot;$(M42LegacyPackageOutputRoot)&quot; -PackageName &quot;$(M42LegacyPackageName)&quot; -PackageVersion &quot;$(_M42LegacyPackageVersion)&quot;" />
</Target>
</Project>