-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDirectory.Build.targets
36 lines (30 loc) · 1.43 KB
/
Directory.Build.targets
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<Project>
<Target Name="ZipPlugins" AfterTargets="Build" Condition="$(AssemblyName.EndsWith('Tests')) == 'false'">
<PropertyGroup>
<StagingDir>$(OutDir)\staging</StagingDir>
<PluginsDir>$(StagingDir)\plugins</PluginsDir>
<BuildDir>$([System.IO.Path]::Combine('$(PluginsDir)', '$(AssemblyName)'))</BuildDir>
<BuildZipDir>$([System.IO.Path]::Combine('$(SolutionDir)/..', 'Zips_$(ConfigurationName)'))</BuildZipDir>
<BuildZipPath>$([System.IO.Path]::Combine('$(BuildZipDir)', '$(AssemblyName)_$(ConfigurationName)_v$(Version).zip'))</BuildZipPath>
</PropertyGroup>
<!--Remove StagingDir if already exists -->
<RemoveDir Directories="$(StagingDir)" />
<!--Get List of output files before maing new staging dir-->
<ItemGroup>
<PluginsFiles Include="$(OutDir)\**\*.*" />
</ItemGroup>
<!--Ensure Output directories exist.-->
<MakeDir Directories="$(StagingDir)" />
<MakeDir Directories="$(PluginsDir)" />
<MakeDir Directories="$(BuildDir)" />
<MakeDir Directories="$(BuildZipDir)" />
<!--Copy output files to staging dir-->
<Copy SourceFiles="@(PluginsFiles)" DestinationFiles="@(PluginsFiles->'$(BuildDir)\%(RecursiveDir)%(Filename)%(Extension)')" />
<!-- Main build zip file -->
<ZipDirectory SourceDirectory="$(StagingDir)"
DestinationFile="$(BuildZipPath)"
Overwrite="true"/>
<!-- Remove staging dir -->
<RemoveDir Directories="$(StagingDir)" />
</Target>
</Project>