forked from dnnsoftware/Dnn.Platform
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathPackage.targets
More file actions
114 lines (101 loc) · 6.04 KB
/
Copy pathPackage.targets
File metadata and controls
114 lines (101 loc) · 6.04 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DotNetNukeMSBuildTasksLib>$(BuildScriptsPath)\DotNetNuke.MSBuild.Tasks.dll</DotNetNukeMSBuildTasksLib>
<YuiLib>$(BuildScriptsPath)\Yahoo.Yui.Compressor.MsBuild.dll</YuiLib>
</PropertyGroup>
<Import Project="MSBuild.Community.Tasks.Targets" />
<UsingTask TaskName="ExtensionPackager" TaskFactory="RoslynCodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
<ParameterGroup>
<WorkingFolder ParameterType="System.String" />
<Manifest Required="true" ParameterType="System.String" />
<PackageFiles Output="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" />
</ParameterGroup>
<Task>
<Using Namespace="Microsoft.Build.Utilities" />
<Using Namespace="System.Collections.Generic" />
<Using Namespace="System.IO" />
<Using Namespace="System.Linq" />
<Using Namespace="System.Xml.Linq" />
<Code Type="Fragment" Language="cs">
<![CDATA[
this.PackageFiles = (
from package in XDocument.Load(Path.Combine(this.WorkingFolder ?? string.Empty, this.Manifest)).Descendants("package")
from component in package.Element("components").Descendants("component")
let componentType = component.Attribute("type").Value
from file in component.Descendants().Descendants<XElement>(componentType.ToLowerInvariant())
where file.Attribute("action")?.Value != "UnRegister"
let path = file.Element("path")
let name = file.Element("name")
let sourceFileName = file.Element("sourceFileName")
let fullFilePath = sourceFileName?.Value ?? Path.Combine(path?.Value ?? string.Empty, name.Value)
select new TaskItem(fullFilePath, new Dictionary<string, object> { { "RecursiveDir", Path.GetDirectoryName(fullFilePath) }, })
).ToArray();
]]>
</Code>
</Task>
</UsingTask>
<UsingTask AssemblyFile="$(YuiLib)" TaskName="CssCompressorTask" />
<!--<UsingTask AssemblyFile="$(YuiLib)" TaskName="JavaScriptCompressorTask" />-->
<Target Name="Package" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<XmlPeek Namespaces="<Namespace Prefix='n' Uri='http://schemas.microsoft.com/developer/msbuild/2003' />"
Query="dotnetnuke/packages/package/@version"
XmlInputPath="$(DNNFileName).dnn">
<Output TaskParameter="Result" PropertyName="Version" />
</XmlPeek>
<ExtensionPackager Manifest="$(DNNFileName).dnn" WorkingFolder="$(MSBuildProjectDirectory)\">
<Output TaskParameter="PackageFiles" ItemName="PackageFiles">
</Output>
</ExtensionPackager>
<CallTarget Condition="'$(CompressCss)' == 'True'" Targets="Minification" />
<Copy SourceFiles="$(DNNFileName).dnn" DestinationFolder="$(MSBuildProjectDirectory)\Package" />
<Zip Condition="'$(CompressCss)' != 'True'" Files="@(Resources)" WorkingDirectory="$(MSBuildProjectDirectory)" ZipFileName="$(MSBuildProjectDirectory)\Package\Resources.zip" />
<ItemGroup>
<LicenseFiles Include="license.txt"/>
</ItemGroup>
<Copy SourceFiles="@(LicenseFiles)" DestinationFolder="$(MSBuildProjectDirectory)\Package" />
<ItemGroup>
<ReleaseNotesFiles Include="releaseNotes.txt"/>
</ItemGroup>
<Copy SourceFiles="@(ReleaseNotesFiles)" DestinationFolder="$(MSBuildProjectDirectory)\Package" />
<Copy SourceFiles="@(PackageFiles)" DestinationFolder="$(MSBuildProjectDirectory)\Package\%(PackageFiles.RecursiveDir)" />
<ItemGroup>
<ZipOutputContent Include="$(MSBuildProjectDirectory)\Package\**\*.*" />
</ItemGroup>
<Zip Files="@(ZipOutputContent)" WorkingDirectory="$(MSBuildProjectDirectory)\Package" ZipFileName="$(PackageName)_$(Version)_Install.$(Extension)" />
<Move SourceFiles="$(MSBuildProjectDirectory)\$(PackageName)_$(Version)_Install.$(Extension)" DestinationFolder="$(InstallPath)" />
<RemoveDir Directories="$(MSBuildProjectDirectory)\Package" ContinueOnError="WarnAndContinue" />
</Target>
<Target Name="Minification">
<MakeDir Directories="$(MSBuildProjectDirectory)\Package"/>
<Zip Files="@(Resources)" WorkingDirectory="$(MSBuildProjectDirectory)" ZipFileName="$(MSBuildProjectDirectory)\Package\Resources.zip" />
<Unzip ZipFileName="$(MSBuildProjectDirectory)\Package\Resources.zip" TargetDirectory="$(MSBuildProjectDirectory)\Package\Resources" />
<Delete Files="$(MSBuildProjectDirectory)\Package\Resources.zip" />
<ItemGroup>
<!--<_JSFilesToMinify Include="$(MSBuildProjectDirectory)\Package\Resources\**\*.js" Exclude="$(MSBuildProjectDirectory)\Package\Resources\**\*.min.js" />-->
<_Step2FilesToZip Include="$(MSBuildProjectDirectory)\Package\Resources\**\*" />
</ItemGroup>
<!--
<Message Text="Compressing Javascript files" Importance="high" />
<JavaScriptCompressorTask Files="@(_JSFilesToMinify)" ContinueOnError="WarnAndContinue" />
-->
<ItemGroup>
<_CSSFilesToCompress Include="$(MSBuildProjectDirectory)\*\*.css;$(MSBuildProjectDirectory)\*\*\*.css;$(MSBuildProjectDirectory)\*\*\*\*.css;$(MSBuildProjectDirectory)\*\*\*\*\*.css;" Exclude="Package\**\*;**\node_modules\**;**\WebApps\**" />
</ItemGroup>
<Message Text="Compressing the following CSS files:" Importance="high" />
<Message Text="%(_CSSFilesToCompress.Identity)" Importance="high" />
<CssCompressorTask
SourceFiles="@(_CSSFilesToCompress)"
DeleteSourceFiles="false"
OutputFile="$(MSBuildProjectDirectory)\Package\Resources\%(RecursiveDir)%(Filename)%(Extension)"
CompressionType="Standard"
LoggingType="Info"
PreserveComments="false"
LineBreakPosition="-1"
Condition="@(_CSSFilesToCompress->Count())!=0"
/>
<Zip Files="@(_Step2FilesToZip)" WorkingDirectory="$(ResourceZipWorkingDirectory)"
ZipFileName="$(MSBuildProjectDirectory)\Package\Resources.zip" />
<RemoveDir Directories ="$(MSBuildProjectDirectory)\Package\Resources" ContinueOnError="WarnAndContinue" />
</Target>
</Project>