mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-04-04 10:33:43 +08:00

# Conflicts: # .gitignore # ClickToBuild.cmd # lib/nuget/nuget.exe # src/Orchard.Azure/Orchard.Azure.Web/Orchard.Azure.Web.csproj # src/Orchard.Azure/Orchard.Azure.Web/Web.config # src/Orchard.Web/Core/Orchard.Core.csproj # src/Orchard.Web/Modules/Lucene/Lucene.csproj # src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj # src/Orchard.Web/Modules/Orchard.CustomForms/Orchard.CustomForms.csproj # src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj # src/Orchard.Web/Modules/Orchard.DynamicForms/packages.config # src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj # src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj # src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj # src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
452 lines
21 KiB
XML
452 lines
21 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<!-- Initialization -->
|
|
|
|
<PropertyGroup>
|
|
<LibFolder>$(MSBuildProjectDirectory)\lib</LibFolder>
|
|
<SrcFolder>$(MSBuildProjectDirectory)\src</SrcFolder>
|
|
<BuildFolder>$(MSBuildProjectDirectory)\build</BuildFolder>
|
|
<MsBuildTasksFolder>$(MSBuildProjectDirectory)\buildtasks</MsBuildTasksFolder>
|
|
<ArtifactsFolder>$(MSBuildProjectDirectory)\artifacts</ArtifactsFolder>
|
|
<SqlCeFolder>$(MSBuildProjectDirectory)\lib\sqlce</SqlCeFolder>
|
|
<SourceArtifactFolder>$(ArtifactsFolder)\Source</SourceArtifactFolder>
|
|
<MsDeployArtifactFolder>$(ArtifactsFolder)\MsDeploy</MsDeployArtifactFolder>
|
|
<GalleryArtifactFolder>$(ArtifactsFolder)\Gallery</GalleryArtifactFolder>
|
|
<OrchardWebFolder>$(SrcFolder)\Orchard.Web</OrchardWebFolder>
|
|
<ModulesSrcFolder>$(OrchardWebFolder)\Modules</ModulesSrcFolder>
|
|
<OrchardCoreSrcFolder>$(OrchardWebFolder)\Core</OrchardCoreSrcFolder>
|
|
<ThemesSrcFolder>$(OrchardWebFolder)\Themes</ThemesSrcFolder>
|
|
|
|
<CompileFolder>$(BuildFolder)\Compile</CompileFolder>
|
|
<WebSitesFolder>$(CompileFolder)\_PublishedWebsites</WebSitesFolder>
|
|
<StageFolder>$(BuildFolder)\Stage</StageFolder>
|
|
<MsDeployFolder>$(BuildFolder)\MsDeploy</MsDeployFolder>
|
|
<PrecompiledFolder>$(BuildFolder)\Precompiled</PrecompiledFolder>
|
|
<ProfilingFolder>$(BuildFolder)\Profiling</ProfilingFolder>
|
|
<GalleryFolder>$(BuildFolder)\Gallery</GalleryFolder>
|
|
|
|
<BuildPlatform Condition="$(ProgramW6432) != ''">x64</BuildPlatform>
|
|
<BuildPlatform Condition="$(BuildPlatform) == ''">x86</BuildPlatform>
|
|
<Configuration Condition="$(Configuration) == ''">Release</Configuration>
|
|
|
|
<OrchardSolution>$(SrcFolder)\Orchard.sln</OrchardSolution>
|
|
<Solution Condition="$(Solution) == ''">$(OrchardSolution)</Solution>
|
|
|
|
<!-- TeamCity build number -->
|
|
<Version>$(BUILD_NUMBER)</Version>
|
|
</PropertyGroup>
|
|
|
|
<!-- Finding the restored NuGet package of NUnit (version number doesn't matter)
|
|
to be able to reference the test runner executable (http://stackoverflow.com/a/25617556). -->
|
|
<ItemGroup>
|
|
<NUnitPackageFiles Include="$(SrcFolder)\packages\NUnit*\tools\nunit-console.exe" />
|
|
<NUnitPackageToolsFolder Include="@(NUnitPackageFiles->'%(RootDir)%(Directory)'->Distinct())" />
|
|
</ItemGroup>
|
|
|
|
<Import Project="$(LibFolder)\msbuildtasks\MSBuild.Community.Tasks.Targets"/>
|
|
<Import Project="$(LibFolder)\slowcheetah\SlowCheetah.Transforms.targets"/>
|
|
|
|
<!-- Coordinating Targets -->
|
|
|
|
<Target Name="Build">
|
|
<CallTarget Targets="Clean"/>
|
|
<CallTarget Targets="Compile"/>
|
|
<CallTarget Targets="Test"/>
|
|
<CallTarget Targets="Package"/>
|
|
</Target>
|
|
|
|
<Target Name="FastBuild">
|
|
<CallTarget Targets="Clean"/>
|
|
<CallTarget Targets="Compile"/>
|
|
<CallTarget Targets="Package"/>
|
|
</Target>
|
|
|
|
<Target Name="FullBuild">
|
|
<CallTarget Targets="Clean"/>
|
|
<CallTarget Targets="Compile"/>
|
|
<CallTarget Targets="Test"/>
|
|
<CallTarget Targets="Package"/>
|
|
<CallTarget Targets="Spec"/>
|
|
<CallTarget Targets="Gallery"/>
|
|
</Target>
|
|
|
|
<Target Name="FastPackage">
|
|
<CallTarget Targets="Clean"/>
|
|
<CallTarget Targets="Compile"/>
|
|
<CallTarget Targets="Package"/>
|
|
<CallTarget Targets="Gallery"/>
|
|
</Target>
|
|
|
|
<Target Name="Package">
|
|
<CallTarget Targets="Package-Stage"/>
|
|
<CallTarget Targets="Package-MsDeploy"/>
|
|
<CallTarget Targets="Package-Zip"/>
|
|
</Target>
|
|
|
|
<Target Name="Precompiled">
|
|
<CallTarget Targets="Clean"/>
|
|
<CallTarget Targets="Compile"/>
|
|
<CallTarget Targets="Package-Stage"/>
|
|
<CallTarget Targets="Package-Precompiled"/>
|
|
</Target>
|
|
|
|
<Target Name="Profiling">
|
|
<CallTarget Targets="Clean"/>
|
|
<CallTarget Targets="Compile"/>
|
|
<CallTarget Targets="Package-Stage"/>
|
|
<CallTarget Targets="Profiling-Stage"/>
|
|
<CallTarget Targets="Profiling-Setup"/>
|
|
</Target>
|
|
|
|
<Target Name="Gallery">
|
|
<CallTarget Targets="Gallery-Stage"/>
|
|
<CallTarget Targets="Gallery-Setup"/>
|
|
</Target>
|
|
|
|
<!-- Building -->
|
|
|
|
<Target Name="Clean">
|
|
<MSBuild Projects="$(Solution)" Targets="Clean" />
|
|
<RemoveDir Directories="$(BuildFolder)" ContinueOnError="true"/>
|
|
<RemoveDir Directories="$(ArtifactsFolder)" />
|
|
</Target>
|
|
|
|
<Target Name="Compile">
|
|
<CallTarget Targets="DevCompile"/>
|
|
<!-- Compile to "OutputFolder" -->
|
|
<MSBuild
|
|
Projects="$(Solution)"
|
|
Targets="Build"
|
|
Properties="Configuration=$(Configuration);OutputPath=$(CompileFolder)" />
|
|
</Target>
|
|
|
|
<Target Name="DevCompile">
|
|
<!-- To make sure that Roslyn tools are available, since it's included with Orchard.Web, which is not referenced by
|
|
other projects, so it will be built towards the end. -->
|
|
<MSBuild
|
|
Projects="$(OrchardWebFolder)\Orchard.Web.csproj"
|
|
Targets="CopyRoslynCompilerFilesToOutputDirectory" />
|
|
<!-- Compile to "regular" output folder for devs using VS locally -->
|
|
<MSBuild
|
|
Projects="$(Solution)"
|
|
Targets="Build"
|
|
Properties="Configuration=$(Configuration);MvcBuildViews=$(MvcBuildViews)" />
|
|
</Target>
|
|
|
|
<Target Name="CompileMsBuildTasks">
|
|
<MSBuild
|
|
Projects="$(SrcFolder)\Tools\MSBuild.Orchard.Tasks\MSBuild.Orchard.Tasks.csproj"
|
|
Targets="Build"
|
|
Properties="Configuration=$(Configuration);OutputPath=$(MsBuildTasksFolder)" />
|
|
</Target>
|
|
|
|
<!-- Testing -->
|
|
|
|
<Target Name="Test">
|
|
<!-- Run unit test assemblies -->
|
|
<CreateItem Include="$(CompileFolder)\*.Tests.*dll" Exclude="$(CompileFolder)\Orchard.Azure.Tests.dll">
|
|
<Output TaskParameter="Include" ItemName="TestAssemblies" />
|
|
</CreateItem>
|
|
|
|
<NUnit Assemblies="@(TestAssemblies)" ToolPath="@(NUnitPackageToolsFolder)" WorkingDirectory="$(CompileFolder)" OutputXmlFile="$(BuildFolder)\Orchard.Tests.xml" ExcludeCategory="longrunning" />
|
|
</Target>
|
|
|
|
<Target Name="TestAzure">
|
|
<!-- Run unit test assemblies -->
|
|
<CreateItem Include="$(CompileFolder)\Orchard.Azure.Tests.dll">
|
|
<Output TaskParameter="Include" ItemName="TestAssemblies" />
|
|
</CreateItem>
|
|
|
|
<NUnit Assemblies="@(TestAssemblies)" ToolPath="@(NUnitPackageToolsFolder)" WorkingDirectory="$(CompileFolder)" OutputXmlFile="$(BuildFolder)\Orchard.Tests.xml" ExcludeCategory="longrunning" />
|
|
</Target>
|
|
|
|
<Target Name="Spec" DependsOnTargets="Compile">
|
|
<!-- Running SpecFlow tests -->
|
|
<CreateItem Include="$(CompileFolder)\*.Specs.*dll">
|
|
<Output TaskParameter="Include" ItemName="SpecAssemblies" />
|
|
</CreateItem>
|
|
|
|
<NUnit Assemblies="@(SpecAssemblies)" ToolPath="@(NUnitPackageToolsFolder)" WorkingDirectory="$(CompileFolder)" OutputXmlFile="$(BuildFolder)\Orchard.Specs.xml" />
|
|
</Target>
|
|
|
|
<!-- Packaging (Stage) -->
|
|
|
|
<UsingTask AssemblyFile="$(MsBuildTasksFolder)\MSBuild.Orchard.Tasks.dll" TaskName="MSBuild.Orchard.Tasks.FilterModuleBinaries" />
|
|
<UsingTask AssemblyFile="$(MsBuildTasksFolder)\MSBuild.Orchard.Tasks.dll" TaskName="MSBuild.Orchard.Tasks.FileUpdateLines" />
|
|
<UsingTask AssemblyFile="$(MsBuildTasksFolder)\MSBuild.Orchard.Tasks.dll" TaskName="MSBuild.Orchard.Tasks.ValidateExtensionProjectFiles" />
|
|
<UsingTask AssemblyFile="$(MsBuildTasksFolder)\MSBuild.Orchard.Tasks.dll" TaskName="MSBuild.Orchard.Tasks.XmlDelete" />
|
|
|
|
<Target Name="Package-Stage" DependsOnTargets="Compile">
|
|
<CallTarget Targets="CompileMsBuildTasks"/>
|
|
<CallTarget Targets="ValidateProjectFiles"/>
|
|
|
|
<ItemGroup>
|
|
<SqlCe-Native-Binaries-x86 Include="$(SqlCeFolder)\x86\**\*"/>
|
|
<SqlCe-Native-Binaries-amd64 Include="$(SqlCeFolder)\amd64\**\*"/>
|
|
<Stage-Orchard-Web-Bins Include="$(WebSitesFolder)\Orchard.Web\bin\*"/>
|
|
<Stage-Bin-Exclude Include="$(WebSitesFolder)\**\bin\**\*" />
|
|
<Stage-Web Include="$(WebSitesFolder)\Orchard.Web\**\*;$(SrcFolder)\Orchard.Web\*.csproj;" Exclude="$(SrcFolder)\Orchard.Web\Orchard.Web.csproj;$(SrcFolder)\Orchard.Web\**\*.Release.config;$(SrcFolder)\Orchard.Web\**\*.Debug.config"/>
|
|
<Stage-Web-Config Include="$(SrcFolder)\Orchard.Web\**\*.config" Exclude="$(SrcFolder)\Orchard.Web\**\*.Release.config;$(SrcFolder)\Orchard.Web\**\*.Debug.config"/>
|
|
<Stage-Media Include="$(SrcFolder)\Orchard.Web\Media\OrchardLogo.png" />
|
|
<Stage-PoFiles Include="$(SrcFolder)\Orchard.Web\**\*.po" />
|
|
<Stage-Core Include="$(WebSitesFolder)\Orchard.Core\**\*" Exclude="$(WebSitesFolder)\Orchard.Core\**\bin\**\*" />
|
|
|
|
<!-- Get list of module names from the module definition files within ModulesSrcFolder -->
|
|
<Stage-Modules-Definitions Include="$(ModulesSrcFolder)\**\Module.txt" />
|
|
<Stage-Modules-Directories Include="@(Stage-Modules-Definitions->DirectoryName())" />
|
|
<Stage-Modules-Names Include="@(Stage-Modules-Directories->'%(Filename)%(Extension)')" />
|
|
|
|
<!-- Get list of theme names from the theme definition files within ThemesSrcFolder -->
|
|
<Stage-Themes-Definitions Include="$(ThemesSrcFolder)\**\Theme.txt" />
|
|
<Stage-Themes-Directories Include="@(Stage-Themes-Definitions->DirectoryName())" />
|
|
<Stage-Themes-Names Include="@(Stage-Themes-Directories->'%(Filename)%(Extension)')" />
|
|
|
|
<Stage-License Include="$(MSBuildProjectDirectory)\*.txt" />
|
|
<Stage-Build Include="$(MSBuildProjectDirectory)\*.proj;$(MSBuildProjectDirectory)\*.cmd" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Note. We could add recursion (\..\) before the module/theme name thus avoiding the need for custom metadata
|
|
and simplifing the copy tasks further below. However this can result in folders being incorrectly copied if
|
|
a module or theme contains a subfolder with the same name as another module or theme. -->
|
|
<Stage-Modules Include="$(WebSitesFolder)\%(Stage-Modules-Names.Identity)\**\*" Exclude="@(Stage-Bin-Exclude)">
|
|
<ModuleName>%(Stage-Modules-Names.Identity)</ModuleName>
|
|
</Stage-Modules>
|
|
<Stage-Modules-Binaries Include="$(WebSitesFolder)\%(Stage-Modules-Names.Identity)\**\bin\**\*">
|
|
<ModuleName>%(Stage-Modules-Names.Identity)</ModuleName>
|
|
</Stage-Modules-Binaries>
|
|
<Stage-Modules-Sources Include="$(ModulesSrcFolder)\**\*.csproj;$(ModulesSrcFolder)\**\*.cs"/>
|
|
<Stage-Themes-Default Include="$(WebSitesFolder)\Themes\%(Stage-Themes-Names.Identity)\**\*">
|
|
<ThemeName>%(Stage-Themes-Names.Identity)</ThemeName>
|
|
</Stage-Themes-Default>
|
|
<Stage-Themes-Custom Include="$(WebSitesFolder)\%(Stage-Themes-Names.Identity)\**\*" Exclude="@(Stage-Bin-Exclude)">
|
|
<ThemeName>%(Stage-Themes-Names.Identity)</ThemeName>
|
|
</Stage-Themes-Custom>
|
|
<!-- Note. Binaries are not copied for themes in the default Themes project. -->
|
|
<Stage-Themes-Binaries Include="$(WebSitesFolder)\%(Stage-Themes-Names.Identity)\**\bin\**\*">
|
|
<ThemeName>%(Stage-Themes-Names.Identity)</ThemeName>
|
|
</Stage-Themes-Binaries>
|
|
<Stage-Themes-Sources Include="$(ThemesSrcFolder)\**\*.csproj;$(ThemesSrcFolder)\**\*.cs" Exclude="$(ThemesSrcFolder)\*.*"/>
|
|
</ItemGroup>
|
|
|
|
<!-- Copying module binaries is somewhat tricky: From a module "bin" directory, we
|
|
only want to include the files that are _not_ already present in
|
|
the "Orchard.Web\Bin" folder. -->
|
|
<FilterModuleBinaries
|
|
ModulesBinaries="@(Stage-Modules-Binaries)"
|
|
OrchardWebBinaries="@(Stage-Orchard-Web-Bins)">
|
|
<Output TaskParameter="ExcludedBinaries" ItemName="FilterModuleBinaries-ExcludedBinaries"/>
|
|
</FilterModuleBinaries>
|
|
<FilterModuleBinaries
|
|
ModulesBinaries="@(Stage-Themes-Binaries)"
|
|
OrchardWebBinaries="@(Stage-Orchard-Web-Bins)">
|
|
<Output TaskParameter="ExcludedBinaries" ItemName="FilterThemeBinaries-ExcludedBinariesFromThemes"/>
|
|
</FilterModuleBinaries>
|
|
|
|
<ItemGroup>
|
|
<Stage-Modules-Binaries-Unique Include="@(Stage-Modules-Binaries)" Exclude="@(FilterModuleBinaries-ExcludedBinaries)"/>
|
|
<Stage-Themes-Binaries-Unique Include="@(Stage-Themes-Binaries)" Exclude="@(FilterThemeBinaries-ExcludedBinariesFromThemes)"/>
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(Stage-Web);@(Stage-Web-Config);@(Stage-License)" DestinationFolder="$(StageFolder)\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(Stage-Media)" DestinationFolder="$(StageFolder)\Media"/>
|
|
<Copy SourceFiles="@(Stage-PoFiles)" DestinationFolder="$(StageFolder)\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(SqlCe-Native-Binaries-x86)" DestinationFolder="$(StageFolder)\bin\x86\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(SqlCe-Native-Binaries-amd64)" DestinationFolder="$(StageFolder)\bin\amd64\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(Stage-Core)" DestinationFolder="$(StageFolder)\Core\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(Stage-Modules)" DestinationFiles="@(Stage-Modules->'$(StageFolder)\Modules\%(ModuleName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
|
|
<Copy SourceFiles="@(Stage-Modules-Binaries-Unique)" DestinationFiles="@(Stage-Modules-Binaries-Unique->'$(StageFolder)\Modules\%(ModuleName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
|
|
<Copy SourceFiles="@(Stage-Modules-Sources)" DestinationFolder="$(StageFolder)\Modules\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(Stage-Themes-Default)" DestinationFiles="@(Stage-Themes-Default->'$(StageFolder)\Themes\%(ThemeName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
|
|
<Copy SourceFiles="@(Stage-Themes-Custom)" DestinationFiles="@(Stage-Themes-Custom->'$(StageFolder)\Themes\%(ThemeName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
|
|
<Copy SourceFiles="@(Stage-Themes-Binaries-Unique)" DestinationFiles="@(Stage-Themes-Binaries-Unique->'$(StageFolder)\Themes\%(ThemeName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
|
|
<Copy SourceFiles="@(Stage-Themes-Sources)" DestinationFolder="$(StageFolder)\Themes\%(RecursiveDir)"/>
|
|
|
|
<MakeDir Directories="$(StageFolder)\App_Data"/>
|
|
<WriteLinesToFile File="$(StageFolder)\App_Data\_marker.txt" Lines="some_text" Overwrite="true"/>
|
|
|
|
<!-- extra processing of the staged config files -->
|
|
<TransformXml
|
|
Source="$(StageFolder)\Web.Config"
|
|
Transform="$(SrcFolder)\Orchard.Web\Web.$(Configuration).Config"
|
|
Destination="$(StageFolder)\Web.Config"
|
|
/>
|
|
|
|
<TransformXml
|
|
Source="$(StageFolder)\Config\HostComponents.Config"
|
|
Transform="$(SrcFolder)\Orchard.Web\Config\HostComponents.$(Configuration).Config"
|
|
Destination="$(StageFolder)\Config\HostComponents.Config"
|
|
/>
|
|
|
|
<TransformXml
|
|
Source="$(StageFolder)\Config\log4net.Config"
|
|
Transform="$(SrcFolder)\Orchard.Web\Config\log4net.$(Configuration).Config"
|
|
Destination="$(StageFolder)\Config\log4net.Config"
|
|
/>
|
|
|
|
<!-- move over extra non-content files the csproj referenced -->
|
|
<Copy SourceFiles="@(StageProjectAlteration-ExtraFiles->'$(SrcFolder)\Orchard.Web\%(Identity)')"
|
|
DestinationFolder="$(StageFolder)\%(RecursiveDir)"/>
|
|
|
|
</Target>
|
|
|
|
<!-- Packaging (MsDeploy) -->
|
|
<Target Name="Package-MsDeploy">
|
|
<ItemGroup>
|
|
|
|
<MsDeploy-Exclude-Modules Include="
|
|
$(StageFolder)\**\Modules\Orchard.CustomForms\**;
|
|
$(StageFolder)\**\Modules\Orchard.jQuery\**;
|
|
$(StageFolder)\**\Modules\Orchard.Media\**;
|
|
$(StageFolder)\**\Modules\Orchard.MediaPicker\**;
|
|
$(StageFolder)\**\Modules\Orchard.Rules\**;
|
|
$(StageFolder)\**\Modules\Orchard.TaskLease\**;
|
|
" />
|
|
|
|
<MsDeploy-Folder-Input Include="$(StageFolder)\**\*" Exclude="$(StageFolder)\**\bin\**\*.xml;$(StageFolder)\**\obj\**\*;$(StageFolder)\**\bin\**\*.pdb;$(StageFolder)\**\bin\**\*.dll.config;@(MsDeploy-Exclude-Modules)" />
|
|
<MsDeploy-Parameters Include="$(LibFolder)\msdeploy\*.xml;$(LibFolder)\msdeploy\*.sql"/>
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(MsDeploy-Folder-Input)"
|
|
DestinationFolder="$(MsDeployFolder)\Orchard\%(RecursiveDir)"/>
|
|
<Copy SourceFiles="@(MsDeploy-Parameters)"
|
|
DestinationFolder="$(MsDeployFolder)"/>
|
|
|
|
<MakeDir Directories="$(MsDeployFolder)\Orchard\bin\HostRestart"/>
|
|
</Target>
|
|
|
|
<!-- Packaging (Precompiled) -->
|
|
<Target Name="Package-Precompiled">
|
|
<ItemGroup>
|
|
<Precompiled-Exclude-Source Include="$(StageFolder)\**\*.cs;$(StageFolder)\**\*.csproj;$(StageFolder)\**\*.csproj.user" />
|
|
<Precompiled-Folder-Input Include="$(StageFolder)\**\*" Exclude="$(StageFolder)\**\bin\**\*.xml;$(StageFolder)\Modules\**\Tests\**;$(StageFolder)\Modules\**\Specs\**;$(StageFolder)\**\obj\**\*;@(Precompiled-Exclude-Source)" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(Precompiled-Folder-Input)"
|
|
DestinationFolder="$(PrecompiledFolder)\%(RecursiveDir)"/>
|
|
|
|
<MakeDir Directories="$(PrecompiledFolder)\bin\HostRestart"/>
|
|
</Target>
|
|
<Target Name="Package-Zip">
|
|
<ItemGroup>
|
|
|
|
<Zip-Exclude Include="
|
|
$(MSBuildProjectDirectory)\src\**\packages\**\*;
|
|
$(MSBuildProjectDirectory)\src\**\bin\**\*;
|
|
$(MSBuildProjectDirectory)\src\**\obj\**\*;
|
|
$(MSBuildProjectDirectory)\**\App_Data\**\*;
|
|
$(MSBuildProjectDirectory)\**\node_modules\**\*;
|
|
$(MSBuildProjectDirectory)\**\_ReSharper*\**\*;
|
|
$(MSBuildProjectDirectory)\**\*.sln.cache;
|
|
$(MSBuildProjectDirectory)\**\*.suo;
|
|
$(MSBuildProjectDirectory)\**\*.user;
|
|
$(MSBuildProjectDirectory)\**\*.patch;
|
|
$(MSBuildProjectDirectory)\**\*.hgignore;
|
|
$(MSBuildProjectDirectory)\**\*.hg*\**\*;
|
|
$(LibFolder)\nunit\addins\**\*;" />
|
|
|
|
<Zip-Stage Include="$(StageFolder)\**\*" />
|
|
|
|
<Zip-MsDeploy Include="$(MsDeployFolder)\**\*" Exclude=""/>
|
|
|
|
<Zip-Source Include="
|
|
$(MSBuildProjectDirectory)\lib\**\*;
|
|
$(MSBuildProjectDirectory)\src\**\*;
|
|
$(MSBuildProjectDirectory)\*.txt;
|
|
$(MSBuildProjectDirectory)\*.proj;
|
|
$(MSBuildProjectDirectory)\*.cmd;
|
|
" Exclude="@(Zip-Exclude)" />
|
|
|
|
</ItemGroup>
|
|
|
|
<MakeDir Directories="$(MsDeployArtifactFolder);$(SourceArtifactFolder)" />
|
|
|
|
<PropertyGroup>
|
|
<ZipVersionFileSuffix Condition="$(Version) != ''">.$(Version)</ZipVersionFileSuffix>
|
|
<ZipVersionFileSuffix Condition="$(Version) == ''"></ZipVersionFileSuffix>
|
|
</PropertyGroup>
|
|
|
|
<Zip Files="@(Zip-MsDeploy)" WorkingDirectory="$(MsDeployFolder)" ZipFileName="$(MsDeployArtifactFolder)\Orchard.Web$(ZipVersionFileSuffix).zip" />
|
|
<Zip Files="@(Zip-Source)" WorkingDirectory="$(MSBuildProjectDirectory)" ZipFileName="$(SourceArtifactFolder)\Orchard.Source$(ZipVersionFileSuffix).zip" />
|
|
</Target>
|
|
|
|
<!-- Profiling -->
|
|
|
|
<Target Name="Profiling-Stage">
|
|
<ItemGroup>
|
|
<Profiling-Web Include="$(StageFolder)\**\*" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(Profiling-Web)" DestinationFolder="$(ProfilingFolder)\%(RecursiveDir)"/>
|
|
</Target>
|
|
|
|
<Target Name="Profiling-Setup">
|
|
<ReadLinesFromFile File="$(SrcFolder)\Orchard.Profile\profiling-setup-commands.txt">
|
|
<Output TaskParameter="Lines" ItemName="ProfilingSetupCommands"/>
|
|
</ReadLinesFromFile>
|
|
|
|
<Exec Command=""$(ProfilingFolder)\bin\Orchard.exe" %(ProfilingSetupCommands.Identity)" WorkingDirectory="$(ProfilingFolder)"/>
|
|
</Target>
|
|
|
|
<!-- Gallery Packaging -->
|
|
|
|
<Target Name="Gallery-Stage">
|
|
<ItemGroup>
|
|
<Gallery-Web Include="$(StageFolder)\**\*" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(Gallery-Web)" DestinationFolder="$(GalleryFolder)\%(RecursiveDir)"/>
|
|
</Target>
|
|
|
|
<Target Name="Gallery-Setup">
|
|
<Exec Command=""$(GalleryFolder)\bin\Orchard.exe" setup /SiteName:Gallery /AdminUsername:admin /AdminPassword:gallery-secret /DatabaseProvider:SqlCe" WorkingDirectory="$(GalleryFolder)"/>
|
|
<Exec Command=""$(GalleryFolder)\bin\Orchard.exe" feature enable Orchard.Packaging" WorkingDirectory="$(GalleryFolder)"/>
|
|
<Exec Command=""$(GalleryFolder)\bin\Orchard.exe" package create Orchard.Media "$(GalleryArtifactFolder)"" WorkingDirectory="$(GalleryFolder)"/>
|
|
<Exec Command=""$(GalleryFolder)\bin\Orchard.exe" package create Orchard.MediaPicker "$(GalleryArtifactFolder)"" WorkingDirectory="$(GalleryFolder)"/>
|
|
<Exec Command=""$(GalleryFolder)\bin\Orchard.exe" package create Orchard.Rules "$(GalleryArtifactFolder)"" WorkingDirectory="$(GalleryFolder)"/>
|
|
</Target>
|
|
|
|
<!-- ValidateProjectFiles-->
|
|
<Target Name="ValidateProjectFiles">
|
|
<CallTarget Targets="CompileMsBuildTasks"/>
|
|
|
|
<ItemGroup>
|
|
<Validate-ProjectFiles
|
|
Include="$(ModulesSrcFolder)\**\*.csproj;$(ThemesSrcFolder)\**\*.csproj;$(OrchardCoreSrcFolder)\Orchard.Core.csproj"
|
|
Exclude="$(ModulesSrcFolder)\**\*.Specs.csproj"
|
|
/>
|
|
</ItemGroup>
|
|
|
|
<ValidateExtensionProjectFiles Files="@(Validate-ProjectFiles)"/>
|
|
|
|
</Target>
|
|
|
|
<!-- SetVersion -->
|
|
<!-- Update all AssemblyInfo.cs and module.txt files to contain $(Version) -->
|
|
<Target Name="SetVersion" Condition="$(Version) != ''">
|
|
<CallTarget Targets="CompileMsBuildTasks"/>
|
|
|
|
<ItemGroup>
|
|
<Version-AssemblyInfos Include="$(SrcFolder)\**\AssemblyInfo.cs" />
|
|
<Version-Modules Include="$(SrcFolder)\**\Module.txt" />
|
|
<Version-Themes Include="$(SrcFolder)\**\Theme.txt" />
|
|
</ItemGroup>
|
|
|
|
<FileUpdateLines Files="@(Version-Modules)"
|
|
Regex="^(orchardversion|version)(\s*):(\s*)(.*)"
|
|
ReplacementText="${1}${2}:${3}$(Version)"
|
|
IgnoreCase="True"/>
|
|
|
|
<FileUpdateLines Files="@(Version-Themes)"
|
|
Regex="^(orchardversion|version)(\s*):(\s*)(.*)"
|
|
ReplacementText="${1}${2}:${3}$(Version)"
|
|
IgnoreCase="True"/>
|
|
|
|
<FileUpdateLines Files="@(Version-AssemblyInfos)"
|
|
Regex="^\[assembly:(\s)*(AssemblyVersion|AssemblyFileVersion)(\s)*\("(.*)"\)(\s)*\]"
|
|
ReplacementText="[assembly:${1}${2}${3}("$(Version)")${5}]"
|
|
IgnoreCase="True"/>
|
|
</Target>
|
|
</Project>
|