|
| 1 | +<?xml version="1.0" encoding="utf-8" ?> |
| 2 | +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| 3 | + <!-- PLEASE NOTE THAT CHANGES TO THIS FILE WILL NOT TAKE AFFECT UNTIL YOU UNLOAD AND RELOAD YOUR PROJECT! --> |
| 4 | + <!-- |
| 5 | + requirements |
| 6 | + |
| 7 | + MsBuildCommunityTasks: https://github.com/loresoft/msbuildtasks |
| 8 | +
|
| 9 | + modifiations to project file: |
| 10 | + |
| 11 | + <Import Project="$(MSBuildProjectDirectory)\MSBuild\Project.targets" /> |
| 12 | +
|
| 13 | +--> |
| 14 | + <Import Project="$(MSBuildProjectDirectory)\msbuild\BuildProperties.Targets"/> |
| 15 | + <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" Condition="Exists('$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets')"/> |
| 16 | + |
| 17 | + <ItemGroup> |
| 18 | + <AssemblyInfoFile Include="$(MSBuildProjectDirectory)\Properties\AssemblyInfo.cs" /> |
| 19 | + <dnnFile Include="$(MSBuildProjectDirectory)\$(MSBuildProjectName).dnn" /> |
| 20 | + </ItemGroup> |
| 21 | + |
| 22 | + <Target Name="BeforeBuild" Condition="'$(ConfigurationName)'=='Release'"> |
| 23 | + <CallTarget Targets="SetVersionInfo" /> |
| 24 | + </Target> |
| 25 | + <Target Name="AfterBuild"> |
| 26 | + <CallTarget Targets="DeployFiles" /> |
| 27 | + </Target> |
| 28 | + |
| 29 | + <!-- Set the version numbers in DNN file and Assembly --> |
| 30 | + <Target Name="SetVersionInfo"> |
| 31 | + <Message Text="MSBUILD: setting version from $(MSBuildProjectDirectory)\msbuild\BuildProperties.Targets: $(Major).$(Minor).$(Build).$(Revision)" Importance="high"></Message> |
| 32 | + |
| 33 | + <!-- Write new version to assemblyinfo.cs --> |
| 34 | + <Message Text="MSBUILD: Updating @(AssemblyInfoFile) and @(dnnFile) with new version: $(Major).$(Minor).$(Build).$(Revision)" Importance="high"></Message> |
| 35 | + <FileUpdate Files="@(AssemblyInfoFile)" Encoding="ASCII" Regex="AssemblyVersion\(".*"\)" ReplacementText="AssemblyVersion("$(Major).$(Minor).$(Build).$(Revision)")" /> |
| 36 | + <FileUpdate Files="@(AssemblyInfoFile)" Encoding="ASCII" Regex="AssemblyFileVersion\(".*"\)" ReplacementText="AssemblyFileVersion("$(Major).$(Minor).$(Build).$(Revision)")" /> |
| 37 | + <FileUpdate Files="@(dnnFile)" Regex=""Module" version=".*"" |
| 38 | + ReplacementText=""Module" version="$(Major).$(Minor).$(Build)"" /> |
| 39 | + </Target> |
| 40 | + |
| 41 | + <Target Name="DeployFiles"> |
| 42 | + <MakeDir Directories="$(InstallDir)\" /> |
| 43 | + |
| 44 | + <CallTarget Targets="RemoveZips" Condition="'$(ConfigurationName)'=='Release'" /> |
| 45 | + <CallTarget Targets="ZipInstall" Condition="'$(ConfigurationName)'=='Release'" /> |
| 46 | + <CallTarget Targets="CopyFilesToDotNetNuke" Condition="'$(DotNetNukeDir)'!=''" /> |
| 47 | + |
| 48 | + </Target> |
| 49 | + |
| 50 | + |
| 51 | + <!-- remove files with same version number from installation dir --> |
| 52 | + <Target Name="RemoveZips" Condition="'$(ConfigurationName)'=='Release'"> |
| 53 | + <Message Text="MSBUILD: removing old zips with version $(Major).$(Minor).$(Build) from $(InstallDir)\" Importance="high"></Message> |
| 54 | + <CreateItem Include="$(InstallDir)\$(CompanyName).$(ModuleName).$(Major).$(Minor).$(Build).Install.zip;"> |
| 55 | + <Output TaskParameter="Include" ItemName="deleteFiles" /> |
| 56 | + </CreateItem> |
| 57 | + <Delete ContinueOnError="true" Files="@(deleteFiles)"></Delete> |
| 58 | + </Target> |
| 59 | + |
| 60 | + <!-- creat install zip file --> |
| 61 | + <Target Name="ZipInstall" Condition="'$(ConfigurationName)'=='Release'"> |
| 62 | + <Message Text="MSBUILD: creating Installation Zip file: $(InstallDir)\$(CompanyName).$(ModuleName).$(Major).$(Minor).$(Build).$(Revision).Install.zip" Importance="high"></Message> |
| 63 | + <!-- delete resource zip to make it is not there --> |
| 64 | + <Delete Files="$(MSBuildProjectDirectory)\resources.zip"></Delete> |
| 65 | + |
| 66 | + <!-- get files for resource zip--> |
| 67 | + <CreateItem Exclude="$(MSBuildProjectDirectory)\**\.git\**; |
| 68 | + $(MSBuildProjectDirectory)\$(InstallDir)\**; |
| 69 | + $(MSBuildProjectDirectory)\.vs\**; |
| 70 | + $(MSBuildProjectDirectory)\packages\**; |
| 71 | + $(MSBuildProjectDirectory)\_ReSharper**; |
| 72 | + $(MSBuildProjectDirectory)\**\obj\**; |
| 73 | + $(MSBuildProjectDirectory)\**\bin\**; |
| 74 | + $(MSBuildProjectDirectory)\**\Properties\**; |
| 75 | + $(MSBuildProjectDirectory)\*.dnn; |
| 76 | + $(MSBuildProjectDirectory)\*.md; |
| 77 | + $(MSBuildProjectDirectory)\**\msbuild\**" |
| 78 | + Include="$(MSBuildProjectDirectory)\**\*.ascx; |
| 79 | + $(MSBuildProjectDirectory)\**\*.aspx; |
| 80 | + $(MSBuildProjectDirectory)\**\*.html; |
| 81 | + $(MSBuildProjectDirectory)\**\*.cshtml; |
| 82 | + $(MSBuildProjectDirectory)\**\*.ashx; |
| 83 | + $(MSBuildProjectDirectory)\**\*.css; |
| 84 | + $(MSBuildProjectDirectory)\**\*.js; |
| 85 | + $(MSBuildProjectDirectory)\**\*.resx; |
| 86 | + $(MSBuildProjectDirectory)\**\*.rdlc; |
| 87 | + $(MSBuildProjectDirectory)\**\*.gif; |
| 88 | + $(MSBuildProjectDirectory)\**\*.jpg; |
| 89 | + $(MSBuildProjectDirectory)\**\*.png;"> |
| 90 | + <Output TaskParameter="Include" ItemName="resources" /> |
| 91 | + </CreateItem> |
| 92 | + |
| 93 | + <!--get files for install zip--> |
| 94 | + <CreateItem |
| 95 | + Exclude="**.*" |
| 96 | + Include="$(BinDir)\Dnn.WebAnalytics.dll; $(BinDir)\FiftyOne*.dll; $(BinDir)\MaxMind.*.dll; |
| 97 | + $(MSBuildProjectDirectory)\resources.zip; |
| 98 | + $(MSBuildProjectDirectory)\**\*.Sql; |
| 99 | + $(MSBuildProjectDirectory)\*.dnn;"> |
| 100 | + <Output TaskParameter="Include" ItemName="install"/> |
| 101 | + </CreateItem> |
| 102 | + |
| 103 | + <!-- Create resources.zip --> |
| 104 | + <Zip Files="@(resources)" WorkingDirectory="$(MSBuildProjectDirectory)" ZipFileName="$(MSBuildProjectDirectory)\resources.zip" /> |
| 105 | + |
| 106 | + <!-- create install zip. file will contain folder structure --> |
| 107 | + <Zip Files="@(install)" WorkingDirectory="$(MSBuildProjectDirectory)" |
| 108 | + ZipFileName="$(InstallDir)\$(Major).$(Minor).$(Build)\$(CompanyName).$(ModuleName).$(Major).$(Minor).$(Build).$(Revision).Install.zip" /> |
| 109 | + |
| 110 | + <!-- cleanup --> |
| 111 | + <Delete Files="$(MSBuildProjectDirectory)\resources.zip"></Delete> |
| 112 | + </Target> |
| 113 | + <Target Name="CopyFilesToDotNetNuke"> |
| 114 | + <!-- Copy assemblies and Debug Info to DNN Bin Dir --> |
| 115 | + <Message Text="MSBUILD: copying @(Assemblies) to $(DotNetNukeDir)\bin\" Importance="high"></Message> |
| 116 | + <CreateItem Include="$(BinDir)\*.pdb;$(BinDir)\*.dll;"> |
| 117 | + <Output TaskParameter="Include" ItemName="Assemblies" /> |
| 118 | + </CreateItem> |
| 119 | + <Copy SourceFiles="@(Assemblies)" DestinationFolder="$(DotNetNukeDir)\bin\" SkipUnchangedFiles="false" ContinueOnError="true" /> |
| 120 | + <Message Text="MSBUILD: Copied @(Assemblies) to $(DotNetNukeDir)\bin\" Importance="high"></Message> |
| 121 | + </Target> |
| 122 | +</Project> |
| 123 | + |
| 124 | + |
0 commit comments