This repository has been archived by the owner on Dec 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDNNInstall.targets
113 lines (100 loc) · 4.13 KB
/
DNNInstall.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
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
<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="Install" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="..\packages\MSBuildTasks.1.5.0.235\tools\MSBuild.Community.Tasks.Targets"/>
<UsingTask TaskName="MarkdownTask" AssemblyFile="DNNStuff.CustomBuildTasks.dll" />
<UsingTask TaskName="InsertFileTask" AssemblyFile="DNNStuff.CustomBuildTasks.dll" />
<UsingTask TaskName="FileContains" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<FileName ParameterType="System.String" Required="true" />
<Match ParameterType="System.String" Required="true" />
<ContainsText ParameterType="System.Boolean" Output="true" />
</ParameterGroup>
<Task>
<Using Namespace="System.IO"/>
<Code Type="Fragment" Language="cs">
<![CDATA[
this.ContainsText = File.ReadAllText(this.FileName).Contains(Match);
]]>
</Code>
</Task>
</UsingTask>
<PropertyGroup>
<DNNVersion Condition=" '$(DNNVersion)' == '' ">DNN7</DNNVersion>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Version Condition=" '$(Version)' == '' ">01.00.00</Version>
<TempPath>output\$(DNNVersion)</TempPath>
<InstallFile>$(Company).$(ProductName).$(Version).Install.zip</InstallFile>
<DeployFolder>deploy\$(Configuration)</DeployFolder>
</PropertyGroup>
<Target Name="Clean">
<Message Text="Cleaning projects ... " />
<MSBuild Projects="@(ProjectToBuild)" Targets="Clean" >
<Output
TaskParameter="TargetOutputs"
ItemName="AssembliesBuiltBySolution" />
</MSBuild>
</Target>
<Target Name="Build">
<Message Text="Building projects ... " />
<MSBuild Projects="@(ProjectToBuild)" Targets="Build" Properties='DefineConstants=DNNVERSION="$(DNNVersion)"'>
<Output
TaskParameter="TargetOutputs"
ItemName="AssembliesBuiltBySolution" />
</MSBuild>
</Target>
<Target Name="Initialize">
<Message Text="Initializing folders ... " />
<!-- Prepare folder to copy output -->
<RemoveDir Directories="$(TempPath)" />
<MakeDir Directories="$(TempPath)" />
<!-- Prepare local deployment folder -->
<MakeDir Directories="$(DeployFolder)" />
</Target>
<Target Name="Install" DependsOnTargets="Initialize;Resources;WriteVersionText;UpdateAssyVersion;Clean;Build">
<!-- Copy dll's -->
<Copy SourceFiles="@(AssembliesBuiltBySolution)" DestinationFolder="$(TempPath)" />
<!-- Copy other content -->
<Copy SourceFiles="@(MyContentFiles)" DestinationFolder="$(TempPath)" />
<!-- Update dnn file with version number -->
<XmlUpdate Prefix="" Namespace=""
XPath="//dotnetnuke/packages/package/@version"
XmlFileName="$(TempPath)\$(ProductName).dnn"
Value="$(Version)" />
<!-- Create list of files to zip -->
<CreateItem Include="$(TempPath)\*.*">
<Output TaskParameter="Include" ItemName="MyInstallFiles" />
</CreateItem>
<!-- Zip files -->
<Zip Files="@(MyInstallFiles)"
Comment=""
WorkingDirectory="$(TempPath)"
ZipFileName="$(DeployFolder)\$(InstallFile)" />
</Target>
<Target Name="Resources">
<Zip Files="@(MyResourceFiles)"
ZipFileName="$(TempPath)\resources.zip"
WorkingDirectory="..\" />
</Target>
<Target Name="WriteVersionText">
<ItemGroup>
<FilestoDelete Include="*.txt" />
</ItemGroup>
<Delete Files="@(FilesToDelete)" ContinueOnError="true" />
<WriteLinesToFile File="$(Version).txt" Lines="$(Version)" Overwrite="true" />
</Target>
<Target Name="UpdateAssyVersion">
<AssemblyInfo CodeLanguage="VB"
OutputFile="..\AssemblyInfo.vb"
AssemblyTitle="$(Company).$(ProductName)"
AssemblyDescription="$(Company).$(ProductName) - $(DNNVersion) Install"
AssemblyConfiguration=""
AssemblyCompany="$(Company)"
AssemblyProduct="$(Company) $(ProductName)"
AssemblyCopyright="Copyright (c) $(Company) 2017"
AssemblyTrademark=""
ComVisible="false"
CLSCompliant="true"
AssemblyVersion="$(Version)"
AssemblyFileVersion="$(Version)" />
</Target>
</Project>