This commit is contained in:
Morten Christensen
2012-12-04 07:37:10 -01:00
36 changed files with 1933 additions and 2400 deletions
+2 -1
View File
@@ -64,4 +64,5 @@ src/Umbraco.Tests/config/umbracoSettings.config
src/Umbraco.Web.UI/App_Plugins/*
src/Umbraco.Web.UI/Views/*
src\Umbraco.Web.UI\[W]eb.config
src\Umbraco.Web.UI\[W]eb.config
*.transformed
+17 -81
View File
@@ -1,4 +1,4 @@
<Project InitialTargets="Build" DefaultTargets="AfterBuild" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
****************************************************
@@ -46,8 +46,8 @@
</PropertyGroup>
<ItemGroup>
<SystemFolders Include="$(WebAppFolder)App_Plugins" />
<SystemFolders Include="$(WebAppFolder)App_Code" />
<SystemFolders Include="$(WebAppFolder)App_Plugins" />
<SystemFolders Include="$(WebAppFolder)App_Code" />
<SystemFolders Include="$(WebAppFolder)App_Data" />
<SystemFolders Include="$(WebAppFolder)media" />
<SystemFolders Include="$(WebAppFolder)masterpages" />
@@ -56,6 +56,7 @@
<SystemFolders Include="$(WebAppFolder)macroScripts" />
<SystemFolders Include="$(WebAppFolder)xslt" />
<SystemFolders Include="$(WebAppFolder)usercontrols" />
<SystemFolders Include="$(WebAppFolder)Views" />
</ItemGroup>
<!--
@@ -75,7 +76,6 @@
</Target>
<Target Name="ZipWebPiApp" DependsOnTargets="ZipWebApp" >
<!-- Clean folders -->
<RemoveDir Directories="$(WebPiFolder)" />
<MakeDir Directories="$(WebPiFolder)" />
@@ -84,13 +84,6 @@
<!-- Copy fresh built umbraco files -->
<Exec Command="xcopy %22$(WebAppFolderAbsolutePath)*%22 %22$(WebPiFolderAbsolutePath)umbraco%22 /S /E /Y /I" />
<!--<ItemGroup>
<WebAppFiles Include="$(WebAppFolder)\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(WebAppFiles)"
DestinationFiles="@(WebAppFiles->'$(WebPiFolder)umbraco\%(RecursiveDir)%(Filename)%(Extension)')" />-->
<!-- Copy Web Pi template files -->
<ItemGroup>
<WebPiFiles Include="..\src\WebPi\**\*.*" />
@@ -101,11 +94,9 @@
<!-- Zip the files -->
<Exec Command="..\tools\7zip\7za.exe a -r %22$(BuildZipFileNameWebPi)%22 %22$(WebPiFolderAbsolutePath)*%22" />
</Target>
<Target Name="ZipWebApp" DependsOnTargets="CreateSystemFolders" >
<Message Text="Starting to zip to $(buildDate)-$(BuildZipFileName)" Importance="high" />
<Exec Command="..\tools\7zip\7za.exe a -r %22$(BuildZipFileNameBin)%22 %22$(SolutionBinFolderAbsolutePath)*%22" />
@@ -119,7 +110,6 @@
</Target>
<Target Name="CopyLibraries" DependsOnTargets="OffsetTimestamps" >
<!-- Copy SQL CE -->
<ItemGroup>
<SQLCE4Files Include="..\src\packages\SqlServerCE.4.0.0.0\**\*.*" />
@@ -143,7 +133,7 @@
</Target>
<!-- Offset the modified timestamps on all umbraco dlls, as WebResources break if date is in the future, which, due to timezone offsets can happen. -->
<Target Name="OffsetTimestamps" DependsOnTargets="CompileProjects">
<Target Name="OffsetTimestamps" DependsOnTargets="CopyTransformedWebConfig">
<CreateItem Include="$(BuildFolder)**\umbraco.*.dll">
<Output TaskParameter="Include" ItemName="FilesToOffsetTimestamp" />
</CreateItem>
@@ -152,80 +142,26 @@
<Message Text="Finished offsetting timestamps" Importance="high" />
</Target>
<!-- Copy the transformed web.config file to the root -->
<Target Name="CopyTransformedWebConfig" DependsOnTargets="CompileProjects">
<ItemGroup>
<WebConfigFile Include="..\src\Umbraco.Web.UI\web.$(BuildConfiguration).Config.transformed" />
</ItemGroup>
<Copy SourceFiles="@(WebConfigFile)"
DestinationFiles="$(WebAppFolder)Web.config"
OverwriteReadOnlyFiles="true"
SkipUnchangedFiles="false" />
</Target>
<Target Name="CompileProjects">
<Message Text="Compiling web project to build\$(BuildFolder)" Importance="high" />
<!-- For UseWPP_CopyWebApplication=True see http://stackoverflow.com/questions/1983575/copywebapplication-with-web-config-transformations -->
<MSBuild Projects="..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);WebProjectOutputDir=$(WebAppFolderAbsolutePath)" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
</MSBuild>
<!--
Now, because of all the circular dependencies we need to build those projects and have them dump their DLLs/assets out to the same folder. Really wish this wasn't the case!
These are: umbraco.editorControls umbraco.webservices umbraco.MacroEngines
Each of these projects has a post build to put their stuff in the correct location based on the solution and unfortunately for us each
of these projects references the web application! So if we specify an OutDir parameter it will also trigger a web deploy and chuck another
website output in bin/_PublishedWebSites folder. we cannot disable this: http://social.msdn.microsoft.com/forums/en-US/tfsbuild/thread/3ec642ad-2e6d-424c-891a-62f6409da62a/
so we need to just build the project 'in-place' then copy its output to the SolutionBinFolder
-->
<!-- MACRO ENGINES -->
<Message Text="Compiling MacroEngines project" Importance="high" />
<MSBuild Projects="..\src\umbraco.MacroEngines\umbraco.MacroEngines.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
</MSBuild>
<ItemGroup>
<MacroEngineDll Include="..\src\umbraco.MacroEngines\bin\$(BuildConfiguration)\umbraco.MacroEngines.dll"/>
</ItemGroup>
<Copy SourceFiles="@(MacroEngineDll)"
DestinationFolder="$(SolutionBinFolder)" OverwriteReadOnlyFiles="True"/>
<Copy SourceFiles="@(MacroEngineDll)"
DestinationFolder="$(WebAppFolder)\bin" OverwriteReadOnlyFiles="True"/>
<!-- EDITOR CONTROLS -->
<Message Text="Compiling editorControls project" Importance="high" />
<MSBuild Projects="..\src\umbraco.editorControls\umbraco.editorControls.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
</MSBuild>
<ItemGroup>
<EditorControlsDll Include="..\src\umbraco.editorControls\bin\$(BuildConfiguration)\umbraco.editorControls.dll"/>
</ItemGroup>
<Copy SourceFiles="@(EditorControlsDll)"
DestinationFolder="$(SolutionBinFolder)" OverwriteReadOnlyFiles="True"/>
<Copy SourceFiles="@(EditorControlsDll)"
DestinationFolder="$(WebAppFolder)\bin" OverwriteReadOnlyFiles="True"/>
<!-- WEBSERVICES -->
<Message Text="Compiling webservices project" Importance="high" />
<MSBuild Projects="..\src\umbraco.webservices\umbraco.webservices.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
</MSBuild>
<ItemGroup>
<WebServicesDll Include="..\src\umbraco.webservices\bin\$(BuildConfiguration)\umbraco.webservices.dll"/>
<WebServicesASMX Include="..\src\umbraco.webservices\*.asmx"/>
</ItemGroup>
<Copy SourceFiles="@(WebServicesDll)"
DestinationFolder="$(SolutionBinFolder)" OverwriteReadOnlyFiles="True"/>
<Copy SourceFiles="@(WebServicesDll)"
DestinationFolder="$(WebAppFolder)\bin" OverwriteReadOnlyFiles="True"/>
<Copy SourceFiles="@(WebServicesASMX)"
DestinationFolder="$(WebAppFolder)\umbraco\webservices\api" OverwriteReadOnlyFiles="True"/>
<!-- SQLCE4UMBRACO -->
<!--<Message Text="Compiling SQLCE4Umbraco project" Importance="high" />
<MSBuild Projects="..\src\SQLCE4Umbraco\SQLCE4Umbraco.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
</MSBuild>
<ItemGroup>
<SQLCE4UmbracoDll Include="..\src\SQLCE4Umbraco\bin\$(BuildConfiguration)\SQLCE4Umbraco.dll" />
</ItemGroup>
<Copy SourceFiles="@(SQLCE4UmbracoDll)"
DestinationFolder="$(SolutionBinFolder)" OverwriteReadOnlyFiles="True"/>
<Copy SourceFiles="@(SQLCE4UmbracoDll)"
DestinationFolder="$(WebAppFolder)\bin" OverwriteReadOnlyFiles="True"/>-->
<!-- DONE -->
<Message Text="Finished compiling projects" Importance="high" />
</Target>
<Target Name="AfterBuild">
<Message Text="Hi" />
</Target>
</Project>
+1 -1
View File
@@ -17,7 +17,7 @@ namespace Umbraco.Core.Models.Rdbms
public bool Initialize { get; set; }
[Column("treeSortOrder")]
public byte SortOrder { get; set; }
public int SortOrder { get; set; }
[Column("appAlias")]
[PrimaryKeyColumn(AutoIncrement = false, Clustered = true, Name = "PK_umbracoAppTree", OnColumns = "[appAlias], [treeAlias]")]
@@ -1,4 +1,5 @@
using Umbraco.Core.Persistence;
using System.Data;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseAnnotations;
namespace Umbraco.Core.Models.Rdbms
@@ -10,10 +11,11 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false)]
[ForeignKey(typeof(ContentDto))]
//[ForeignKey(typeof(ContentDto))]
public int NodeId { get; set; }
[Column("xml")]
[SpecialDbType(SpecialDbTypes.NTEXT)]
public string Xml { get; set; }
}
}
@@ -14,7 +14,6 @@ namespace Umbraco.Core.Models.Rdbms
public int PrimaryKey { get; set; }
[Column("nodeId")]
[ForeignKey(typeof(NodeDto))]
[Index(IndexTypes.UniqueNonClustered)]
public int DataTypeId { get; set; }
@@ -13,7 +13,7 @@ namespace Umbraco.Core.Models.Rdbms
public int Id { get; set; }
[Column("datatypeNodeId")]
[ForeignKey(typeof(DataTypeDto), Column = "nodeId")]
//[ForeignKey(typeof(DataTypeDto), Column = "nodeId")]
public int DataTypeNodeId { get; set; }
[Column("value")]
+1 -1
View File
@@ -42,7 +42,7 @@ namespace Umbraco.Core.Models.Rdbms
[Column("templateId")]
[NullSetting(NullSetting = NullSettings.Null)]
[ForeignKey(typeof(TemplateDto))]
//[ForeignKey(typeof(TemplateDto))]
public int? TemplateId { get; set; }
[Column("alias")]
@@ -10,12 +10,9 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("contentTypeNodeId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsDocumentType", OnColumns = "contentTypeNodeId, templateNodeId")]
[ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
[ForeignKey(typeof(NodeDto))]
public int ContentTypeNodeId { get; set; }
[Column("templateNodeId")]
/*[ForeignKey(typeof(TemplateDto))]*/
public int TemplateNodeId { get; set; }
[Column("IsDefault")]
@@ -18,7 +18,6 @@ namespace Umbraco.Core.Models.Rdbms
[Column("domainRootStructureID")]
[NullSetting(NullSetting = NullSettings.Null)]
[ForeignKey(typeof(NodeDto))]
public int? RootStructureId { get; set; }
[Column("domainName")]
@@ -21,7 +21,6 @@ namespace Umbraco.Core.Models.Rdbms
public short Type { get; set; }
[Column("macro")]
[ForeignKey(typeof(MacroDto))]
public int Macro { get; set; }
[Column("macroPropertySortOrder")]
@@ -10,11 +10,9 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("Member")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsMember2MemberGroup", OnColumns = "[Member], [MemberGroup]")]
[ForeignKey(typeof(MemberDto))]
public int Member { get; set; }
[Column("MemberGroup")]
[ForeignKey(typeof(NodeDto))]
public int MemberGroup { get; set; }
}
}
@@ -10,8 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false)]
[ForeignKey(typeof(ContentDto), Column = "nodeId")]
[ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("Email")]
@@ -13,8 +13,6 @@ namespace Umbraco.Core.Models.Rdbms
public int PrimaryKey { get; set; }
[Column("NodeId")]
[ForeignKey(typeof(NodeDto))]
[ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
public int NodeId { get; set; }
[Column("propertytypeId")]
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Models.Rdbms
public Guid? VersionId { get; set; }
[Column("propertytypeid")]
[ForeignKey(typeof(PropertyTypeDto))]
//[ForeignKey(typeof(PropertyTypeDto))]
[Index(IndexTypes.NonClustered, Name = "IX_cmsPropertyData_3")]
public int PropertyTypeId { get; set; }
@@ -15,8 +15,6 @@ namespace Umbraco.Core.Models.Rdbms
[Column("parentGroupId")]
[NullSetting(NullSetting = NullSettings.Null)]
//[Constraint(Default = "NULL")]
[ForeignKey(typeof(PropertyTypeGroupDto))]
public int? ParentGroupId { get; set; }
[Column("contenttypeNodeId")]
@@ -14,15 +14,12 @@ namespace Umbraco.Core.Models.Rdbms
public int Id { get; set; }
[Column("parentId")]
[ForeignKey(typeof(NodeDto), Name = "FK_umbracoRelation_umbracoNode")]
public int ParentId { get; set; }
[Column("childId")]
[ForeignKey(typeof(NodeDto), Name = "FK_umbracoRelation_umbracoNode1")]
public int ChildId { get; set; }
[Column("relType")]
[ForeignKey(typeof(RelationTypeDto))]
public int RelationType { get; set; }
[Column("datetime")]
@@ -10,7 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false)]
[ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("filename")]
@@ -10,11 +10,9 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsTagRelationship", OnColumns = "[nodeId], [tagId]")]
[ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("tagId")]
[ForeignKey(typeof(TagDto))]
public int TagId { get; set; }
}
}
-3
View File
@@ -22,15 +22,12 @@ namespace Umbraco.Core.Models.Rdbms
public byte TaskTypeId { get; set; }
[Column("nodeId")]
[ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("parentUserId")]
[ForeignKey(typeof(UserDto), Name = "FK_cmsTask_umbracoUser")]
public int ParentUserId { get; set; }
[Column("userId")]
[ForeignKey(typeof(UserDto), Name = "FK_cmsTask_umbracoUser1")]
public int UserId { get; set; }
[Column("DateTime")]
@@ -19,7 +19,6 @@ namespace Umbraco.Core.Models.Rdbms
[Column("master")]
[NullSetting(NullSetting = NullSettings.Null)]
/*[ForeignKey(typeof(TemplateDto), Column = "nodeId")]*/
[ForeignKey(typeof(NodeDto), Name = "FK_cmsTemplate_cmsTemplate")]
public int? Master { get; set; }
@@ -10,11 +10,9 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("userId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_umbracoUser2NodeNotify", OnColumns = "[userId], [nodeId], [action]")]
[ForeignKey(typeof(UserDto))]
public int UserId { get; set; }
[Column("nodeId")]
[ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("action")]
@@ -10,11 +10,9 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("userId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_umbracoUser2NodePermission", OnColumns = "[userId], [nodeId], [permission]")]
[ForeignKey(typeof(UserDto))]
public int UserId { get; set; }
[Column("nodeId")]
[ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("permission")]
@@ -77,10 +77,19 @@ namespace Umbraco.Core.Persistence.Migrations.Initial
CreateCmsDataTypeData();
}
if (tableName.Equals("cmsDataTypePreValues"))
{
CreateCmsDataTypePreValuesData();
}
if (tableName.Equals("umbracoRelationType"))
{
CreateUmbracoRelationTypeData();
}
if (tableName.Equals("cmsTaskType"))
{
CreateCmsTaskTypeData();
}
}
private void CreateUmbracNodeData()
@@ -127,8 +136,8 @@ namespace Umbraco.Core.Persistence.Migrations.Initial
private void CreateCmsContentTypeData()
{
_database.Insert(new ContentTypeDto { PrimaryKey = 532, NodeId = 1031, Alias = "Folder", Icon = "folder.gif", Thumbnail = "folder.png", IsContainer = true, AllowAtRoot = true });
_database.Insert(new ContentTypeDto { PrimaryKey = 533, NodeId = 1032, Alias = "Image", Icon = "mediaPhoto.gif", Thumbnail = "folder.png" });
_database.Insert(new ContentTypeDto { PrimaryKey = 534, NodeId = 1033, Alias = "File", Icon = "mediaFile.gif", Thumbnail = "folder.png" });
_database.Insert(new ContentTypeDto { PrimaryKey = 533, NodeId = 1032, Alias = "Image", Icon = "mediaPhoto.gif", Thumbnail = "mediaPhoto.png" });
_database.Insert(new ContentTypeDto { PrimaryKey = 534, NodeId = 1033, Alias = "File", Icon = "mediaFile.gif", Thumbnail = "mediaFile.png" });
}
private void CreateUmbracoUserData()
@@ -285,7 +294,33 @@ namespace Umbraco.Core.Persistence.Migrations.Initial
}
private void CreateCmsDataTypePreValuesData()
{}
{
using (var transaction = _database.GetTransaction())
{
_database.Execute(new Sql("SET IDENTITY_INSERT [cmsDataTypePreValues] ON "));
_database.Insert("cmsDataTypePreValues", "id", false,
new DataTypePreValueDto
{
Id = 3,
Alias = "",
SortOrder = 0,
DataTypeNodeId = -87,
Value = ",code,undo,redo,cut,copy,mcepasteword,stylepicker,bold,italic,bullist,numlist,outdent,indent,mcelink,unlink,mceinsertanchor,mceimage,umbracomacro,mceinserttable,umbracoembed,mcecharmap,|1|1,2,3,|0|500,400|1049,|true|',0,N''"
});
_database.Insert("cmsDataTypePreValues", "id", false, new DataTypePreValueDto
{
Id = 4,
Alias = "group",
SortOrder = 0,
DataTypeNodeId = 1041,
Value = "default"
});
_database.Execute(new Sql("SET IDENTITY_INSERT [cmsDataTypePreValues] OFF;"));
transaction.Complete();
}
}
private void CreateUmbracoRelationTypeData()
{
@@ -309,24 +344,20 @@ namespace Umbraco.Core.Persistence.Migrations.Initial
}
private void CreateCmsTaskTypeData()
{ }
{
using (var transaction = _database.GetTransaction())
{
_database.Execute(new Sql("SET IDENTITY_INSERT [cmsTaskType] ON "));
_database.Insert("cmsTaskType", "id", false,
new TaskTypeDto
{
Id = 1,
Alias = "toTranslate"
});
_database.Execute(new Sql("SET IDENTITY_INSERT [cmsTaskType] OFF;"));
/*
* SET IDENTITY_INSERT [cmsDataTypePreValues] ON
insert into cmsDataTypePreValues (id, dataTypeNodeId, [value], sortorder, alias)
values (3,-87,',code,undo,redo,cut,copy,mcepasteword,stylepicker,bold,italic,bullist,numlist,outdent,indent,mcelink,unlink,mceinsertanchor,mceimage,umbracomacro,mceinserttable,umbracoembed,mcecharmap,' + char(124) + '1' + char(124) + '1,2,3,' + char(124) + '0' + char(124) + '500,400' + char(124) + '1049,' + char(124) + 'true' + char(124) + '', 0, '')
insert into cmsDataTypePreValues (id, dataTypeNodeId, [value], sortorder, alias)
values (4,1041,'default', 0, 'group')
SET IDENTITY_INSERT [cmsDataTypePreValues] OFF
;
*
*
insert into cmsTaskType (alias) values ('toTranslate');
*/
transaction.Complete();
}
}
}
}
@@ -1,8 +1,6 @@
using NUnit.Framework;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web.Routing;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.template;
namespace Umbraco.Tests.Routing
{
@@ -12,7 +10,15 @@ namespace Umbraco.Tests.Routing
public override void Initialize()
{
base.Initialize();
Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false;
Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false;
}
/// <summary>
/// We don't need a db for this test, will run faster without one
/// </summary>
protected override bool RequiresDbSetup
{
get { return false; }
}
[TestCase("/this/is/my/alias", 1046)]
File diff suppressed because it is too large Load Diff
+15 -15
View File
@@ -2,19 +2,19 @@
<!-- this is the pre-4.10 rest configuration -->
<!-- you should use BaseRestExtensions.config instead -->
<RestExtensions>
<!-- available for backward compatibility only -->
<ext assembly="umbraco" type="umbraco.presentation.umbracobase.library.member" alias="currentMember">
<permission method="login" allowAll="true" />
<permission method="logout" allowAll="true" />
<permission method="id" allowAll="true" />
<permission method="data" allowAll="true" />
<permission method="logout" allowAll="true" />
<permission method="setProperty" allowAll="false" />
</ext>
<!-- here for backward compatibility only -->
<!-- because really, it should not be enabled by default -->
<ext assembly="Runway.Blog" type="Runway.Blog.Library.Base" alias="umbBlog">
<permission method="CreateComment" returnXml="false" allowAll="true" />
<permission method="GetGravatarImage" returnXml="false" allowAll="true" />
</ext>
<!-- available for backward compatibility only -->
<ext assembly="umbraco" type="umbraco.presentation.umbracobase.library.member" alias="currentMember">
<permission method="login" allowAll="true" />
<permission method="logout" allowAll="true" />
<permission method="id" allowAll="true" />
<permission method="data" allowAll="true" />
<permission method="logout" allowAll="true" />
<permission method="setProperty" allowAll="false" />
</ext>
<!-- here for backward compatibility only -->
<!-- because really, it should not be enabled by default -->
<ext assembly="Runway.Blog" type="Runway.Blog.Library.Base" alias="umbBlog">
<permission method="CreateComment" returnXml="false" allowAll="true" />
<permission method="GetGravatarImage" returnXml="false" allowAll="true" />
</ext>
</RestExtensions>
@@ -11,7 +11,7 @@
<%=UmbracoVersion.Current.ToString(3)%>
- no pages found</title>
<link rel="icon" type="image/png" href="<%=umbraco.GlobalSettings.Path + "/images/pinnedIcons/umb.ico" %>" />
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css" />
+4 -2
View File
@@ -11,10 +11,12 @@
<meta charset="utf-8">
<umb1:PageTitle runat="server" />
<link rel="icon" type="image/png" href="<%=umbraco.GlobalSettings.Path + "/images/pinnedIcons/umb.ico" %>" />
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css">
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css" />
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/reset.css" />
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/all.css">
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/all.css" />
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/form.css" />
<script src="../umbraco_client/Application/NamespaceManager.js" type="text/javascript"></script>
+1
View File
@@ -13,6 +13,7 @@
<title>Umbraco CMS -
<%=Request.Url.Host.ToLower().Replace("www.", "") %></title>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" />
<link rel="icon" type="image/png" href="<%=umbraco.GlobalSettings.Path + "/images/pinnedIcons/umb.ico" %>" />
<cc1:UmbracoClientDependencyLoader runat="server" ID="ClientLoader" />
<umb:CssInclude ID="CssInclude1" runat="server" FilePath="css/umbracoGui.css" PathNameAlias="UmbracoRoot" />
<umb:CssInclude ID="CssInclude2" runat="server" FilePath="modal/style.css" PathNameAlias="UmbracoClient" />
@@ -1419,7 +1419,7 @@ namespace umbraco
Debug.Assert(pageElements != null, "pageElements cannot be null");
try
{
string userControlPath = @"~/" + fileName;
string userControlPath = VirtualPathUtility.ToAppRelative(fileName);
if (!File.Exists(IOHelper.MapPath(userControlPath)))
return new LiteralControl(string.Format("UserControl {0} does not exist.", fileName));
@@ -308,12 +308,12 @@ namespace umbraco.cms.presentation.developer
{
DirectoryInfo di = new DirectoryInfo(path);
string rootDir = IOHelper.MapPath(SystemDirectories.Root);
string rootDir = IOHelper.MapPath(SystemDirectories.Usercontrols);
foreach (FileInfo uc in di.GetFiles("*.ascx"))
{
userControlList.Items.Add(
new ListItem(
new ListItem(SystemDirectories.Usercontrols +
uc.FullName.Substring(rootDir.Length).Replace(IOHelper.DirSepChar, '/')));
/*
uc.FullName.IndexOf(usercontrolsDir),
@@ -33,7 +33,7 @@ namespace umbraco.editorControls.userControlGrapper
public usercontrolDataEditor(umbraco.interfaces.IData Data, string UsercontrolPath)
{
_data = Data;
_usercontrolPath = UsercontrolPath;
_usercontrolPath = VirtualPathUtility.ToAppRelative(UsercontrolPath);
}
public virtual bool TreatAsRichTextEditor
@@ -42,7 +42,7 @@ namespace umbraco.editorControls.userControlGrapper
public override string DataTypeName
{
get { return "umbraco usercontrol wrapper"; }
get { return "Umbraco Usercontrol Wrapper"; }
}
public override umbraco.interfaces.IDataPrevalue PrevalueEditor
@@ -76,14 +76,15 @@ namespace umbraco.editorControls.userControlGrapper
private void populateUserControls(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
foreach (FileInfo uc in di.GetFiles("*.ascx"))
{
string root = IOHelper.MapPath(SystemDirectories.Root);
string ucRoot = IOHelper.MapPath(SystemDirectories.Usercontrols);
_dropdownlistUserControl.Items.Add(
new ListItem(
uc.FullName.Substring(root.Length).Replace(IOHelper.DirSepChar, '/'))
new ListItem( SystemDirectories.Usercontrols +
uc.FullName.Substring(ucRoot.Length).Replace(IOHelper.DirSepChar, '/'))
/*
new ListItem(
-33
View File
@@ -57,39 +57,6 @@
*****************************************************
-->
<!-- Make sure web.config will be there even for package/publish -->
<Target Name="CopyWebConfig" BeforeTargets="Build;Rebuild">
<PropertyGroup>
<OriginalFileName>$(ProjDir)Web.Template.config</OriginalFileName>
<OutputFileName>$(ProjOutputDir)Web.config</OutputFileName>
</PropertyGroup>
<Copy
SourceFiles="$(OriginalFileName)"
DestinationFiles="$(OutputFileName)"
OverwriteReadOnlyFiles="true"
SkipUnchangedFiles="false"
Condition="!Exists('$(OutputFileName)')"
/>
</Target>
<Target Name="CustomTarget" AfterTargets="CopyWebConfig">
<Message Text="Building in VS? $(BuildingInsideVisualStudio)" Importance="high" />
<Message Text="Transforming: $(WebConfigSource), running MSBuild on project $(MSBuildProjectDirectory)" Importance="high" />
<PropertyGroup>
<OriginalFileName>$(ProjDir)Web.Template.config</OriginalFileName>
<OutputFileName>$(ProjOutputDir)Web.config</OutputFileName>
</PropertyGroup>
<Message Text="$(OriginalFileName)" Importance="high" />
<Message Text="$(OutputFileName)" Importance="high" />
<TransformXml Condition="$(BuildingInsideVisualStudio) == ''" Source="$(OriginalFileName)" Transform="$(WebConfigSource)" Destination="$(OutputFileName)" />
<TransformXml Condition="$(BuildingInsideVisualStudio) == 'true'" Source="$(OriginalFileName)" Transform="$(WebConfigSource)" Destination="$(OutputFileName)" />
</Target>
<Target Name="ResetConfigFiles" Condition="$(ProjDir) != $(ProjOutputDir)" BeforeTargets="Build;Rebuild" Inputs="@(ConfigFiles)" Outputs="%(Identity).Dummy">
<PropertyGroup>
@@ -1,389 +0,0 @@
<!--
***********************************************************************************************
Microsoft.WebApplication.targets
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
created a backup copy. Incorrect changes to this file will make it
impossible to load or build your web deploy projects from the command-line or the IDE.
This file defines the steps in the standard build process for web application projects.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="Microsoft.WebApplication.Build.Tasks.GetSilverlightItemsFromProperty" AssemblyFile="Microsoft.WebApplication.Build.Tasks.dll" />
<UsingTask TaskName="Microsoft.WebApplication.Build.Tasks.CopyFilesToFolders" AssemblyFile="Microsoft.WebApplication.Build.Tasks.dll" />
<PropertyGroup>
<IsDesktopBuild Condition="'$(IsDesktopBuild)'=='' And '$(TeamFoundationServerUrl)' != ''">False</IsDesktopBuild>
<WebProjectOutputDirInsideProjectDefault>True</WebProjectOutputDirInsideProjectDefault>
<WebProjectOutputDirInsideProjectDefault Condition="('$(OutDir)' != '$(OutputPath)') Or ('$(IsDesktopBuild)' == 'False')" >False</WebProjectOutputDirInsideProjectDefault>
<WebProjectOutputDirInsideProject Condition="'$(WebProjectOutputDirInsideProject)' == ''">$(WebProjectOutputDirInsideProjectDefault)</WebProjectOutputDirInsideProject>
<DisableLinkInCopyWebApplicaton Condition="'$(DisableLinkInCopyWebApplicaton)'==''">False</DisableLinkInCopyWebApplicaton>
<Disable_CopyWebApplication Condition="'$(Disable_CopyWebApplication)' == ''">False</Disable_CopyWebApplication>
<UseWPP_CopyWebApplication Condition="'$(UseWPP_CopyWebApplication)' == ''">False</UseWPP_CopyWebApplication>
<CleanWebProjectOutputDir>True</CleanWebProjectOutputDir>
<CleanWebProjectOutputDir Condition="$(WebProjectOutputDirInsideProject)" >False</CleanWebProjectOutputDir>
</PropertyGroup>
<!--Only setup $(WebProjectOutputDir) iff user haven't set it up-->
<PropertyGroup Condition="'$(WebProjectOutputDir)'==''">
<WebProjectOutputDir>$(MSBuildProjectDirectory)</WebProjectOutputDir>
<WebProjectOutputDir Condition="!$(WebProjectOutputDirInsideProject)">$(OutDir)_PublishedWebsites\$(MSBuildProjectName)</WebProjectOutputDir>
</PropertyGroup>
<PropertyGroup>
<PrepareForRunDependsOn>
$(PrepareForRunDependsOn);
CopySilverlightApplications;
_CopyBinDeployableAssemblies;
</PrepareForRunDependsOn>
<PrepareForRunDependsOn Condition="!$(Disable_CopyWebApplication)">
$(PrepareForRunDependsOn);
_CopyWebApplication;
_BuiltWebOutputGroupOutput
</PrepareForRunDependsOn>
</PropertyGroup>
<!--***************************************************************-->
<!--Global setting for Clean target -->
<!--***************************************************************-->
<PropertyGroup>
<CleanDependsOn>
$(CleanDependsOn);
CleanWebProjectOutputDir;
</CleanDependsOn>
</PropertyGroup>
<!--********************************************************************-->
<!-- CleanWebProjectOutputDir -->
<!-- ********************************************************************-->
<PropertyGroup>
<CleanWebProjectOutputDirDependsOn Condition="'$(CleanWebProjectOutputDirDependsOn)' == ''">
</CleanWebProjectOutputDirDependsOn>
</PropertyGroup>
<Target Name="CleanWebProjectOutputDir"
Condition="$(CleanWebProjectOutputDir)"
DependsOnTargets="$(CleanWebProjectOutputDirDependsOn)">
<!--Assertion check-->
<!--In the case of Clean Packaging/Publish, we simply delete the WebProjectOutputDir-->
<RemoveDir Condition="Exists($(WebProjectOutputDir))" Directories="$(WebProjectOutputDir)" ContinueOnError="true" />
</Target>
<!--
============================================================
_CopyWebApplication
This target will copy the build outputs along with the
content files into a _PublishedWebsites folder.
This Task is only necessary when $(OutDir) has been redirected
to a folder other than ~\bin such as is the case with Team Build.
The original _CopyWebApplication is now a Legacy, you can still use it by setting $(UseWPP_CopyWebApplication) to true.
By default, it now change to use _WPPCopyWebApplication target in Microsoft.Web.Publish.targets. It allow to leverage the web.config trsnaformation.
============================================================
-->
<PropertyGroup>
<!--This will be overwrite by ..\web\Microsoft.Web.Publishing.targets when $(UseWPP_CopyWebApplication) set to true-->
<OnBefore_CopyWebApplicationDefault>
_CopyWebApplicationLegacy;
</OnBefore_CopyWebApplicationDefault>
<OnBefore_CopyWebApplicationDefault Condition="$(UseWPP_CopyWebApplication) AND Exists('$(MSBuildThisFileDirectory)\..\Web\Microsoft.Web.Publishing.targets')">
_WPPCopyWebApplication;
</OnBefore_CopyWebApplicationDefault>
<OnBefore_CopyWebApplication Condition="'$(OnBefore_CopyWebApplication)'==''">
$(OnBefore_CopyWebApplicationDefault);
</OnBefore_CopyWebApplication>
<OnAfter_CopyWebApplication Condition="'$(OnAfter_CopyWebApplication)'==''">
</OnAfter_CopyWebApplication>
<_CopyWebApplicationDependsOn Condition="'$(_CopyWebApplicationDependsOn)'==''">
$(OnBefore_CopyWebApplication);
</_CopyWebApplicationDependsOn>
</PropertyGroup>
<Target Name="_CopyWebApplication"
Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'"
DependsOnTargets="$(_CopyWebApplicationDependsOn)">
<CallTarget Condition="'$(OnAfter_CopyWebApplication)' != ''" Targets="$(OnAfter_CopyWebApplication)" RunEachTargetSeparately="true" />
</Target>
<!--
============================================================
_CopyWebApplicationLegacy
This target will copy the build outputs along with the
content files into a _PublishedWebsites folder.
This Task is only necessary when $(OutDir) has been redirected
to a folder other than ~\bin such as is the case with Team Build.
============================================================
-->
<Target Name="_CopyWebApplicationLegacy" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'" >
<!-- Log tasks -->
<Message Text="Copying Web Application Project Files for $(MSBuildProjectName)" />
<!-- Create the _PublishedWebsites\app\bin folder -->
<MakeDir Directories="$(WebProjectOutputDir)\bin" />
<!-- Copy build outputs to _PublishedWebsites\app\bin folder -->
<Copy SourceFiles="@(IntermediateAssembly)" DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="@(AddModules)"
DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="$(IntermediateOutputPath)$(_SGenDllName)"
DestinationFolder="$(WebProjectOutputDir)\%(Content.SubFolder)%(Content.RecursiveDir)"
SkipUnchangedFiles="true"
Condition="'$(_SGenDllCreated)'=='true'"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="$(IntermediateOutputPath)$(TargetName).pdb"
DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="true"
Condition="'$(_DebugSymbolsProduced)'=='true'"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="@(DocFileItem)"
DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="true"
Condition="'$(_DocumentationFileProduced)'=='true'"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="@(IntermediateSatelliteAssembliesWithTargetPath)"
DestinationFiles="@(IntermediateSatelliteAssembliesWithTargetPath->'$(WebProjectOutputDir)\bin\%(Culture)\$(TargetName).resources.dll')"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="@(ReferenceComWrappersToCopyLocal); @(ResolvedIsolatedComModules); @(_DeploymentLooseManifestFile); @(NativeReferenceFile)"
DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<!-- copy any referenced assemblies to _PublishedWebsites\app\bin folder -->
<Copy SourceFiles="@(ReferenceCopyLocalPaths)"
DestinationFiles="@(ReferenceCopyLocalPaths->'$(WebProjectOutputDir)\bin\%(DestinationSubDirectory)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<!-- Copy content files recursively to _PublishedWebsites\app\ folder -->
<Copy SourceFiles="@(Content)" Condition="'%(Content.Link)' == ''"
DestinationFolder="$(WebProjectOutputDir)\%(Content.RelativeDir)"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
<Copy SourceFiles="@(Content)" Condition="!$(DisableLinkInCopyWebApplicaton) And '%(Content.Link)' != ''"
DestinationFiles="$(WebProjectOutputDir)\%(Content.Link)"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<!-- Copy items that have been marked to be copied to the bin folder -->
<Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectory)"
DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectoryAlways)"
DestinationFolder="$(WebProjectOutputDir)\bin"
SkipUnchangedFiles="false"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<!-- Copy Silverlight Zip and Xzp file to _PublishedWebsites\app\ folder-->
<Copy SourceFiles="@(_WebApplicationSilverlightXapFiles)"
DestinationFolder="$(WebProjectOutputDir)\%(_WebApplicationSilverlightXapFiles.RelativeDir)"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<!-- Copy items that need to be bin deployed to the bin folder -->
<Copy SourceFiles="@(_binDeployableAssemblies)"
DestinationFolder="$(WebProjectOutputDir)\bin\%(_binDeployableAssemblies.DestinationRelPath)"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
</Target>
<!--
============================================================
_BuiltWebOutputGroupOutput
This target creates and populates BuiltWebOutputGroupOutput
with contents of bin along with the @(Content) files
============================================================
-->
<Target Name ="_BuiltWebOutputGroupOutput"
Condition="!$(Disable_CopyWebApplication)"
Outputs="@(BuiltWebOutputGroupOutput)">
<CreateItem Include="$(WebProjectOutputDir)\bin\**\*.*;@(Content->'%(FullPath)')" Condition="'$(OutDir)' == '$(OutputPath)'">
<Output ItemName="BuiltWebOutputGroupOutput" TaskParameter="Include"/>
</CreateItem>
<CreateItem Include="$(WebProjectOutputDir)\**\*.*" Condition="'$(OutDir)' != '$(OutputPath)'">
<Output ItemName="BuiltWebOutputGroupOutput" TaskParameter="Include"/>
</CreateItem>
</Target>
<!--
============================================================
_GetSilverlightApplications
Converts the list of Silverlight Applications that are defined
in the property $(SilverlightApplicationList) to ITaskItems that
can be used by teh CopySilverlightApplication task
The format of $(SilverlightApplicationList) is:
{projGuid}|relPath|tgtFolder;{projGuid2}|relPathToProject2|tgtFolder2;...
============================================================
-->
<Target
Name="_GetSilverlightApplications"
Condition="'$(SilverlightApplicationList)' != ''">
<GetSilverlightItemsFromProperty
SilverlightReferences="$(SilverlightApplicationList)"
ProjectPath="$(MSBuildProjectFullPath)">
<Output TaskParameter="SilverlightApplications" ItemName="_AllSilverlightApplications"/>
</GetSilverlightItemsFromProperty>
<!-- Break the silverlight application list into two lists: those that exist on disk and those that don't. -->
<ItemGroup>
<_SilverlightApplications Include="@(_AllSilverlightApplications)" Condition="Exists('%(Identity)')"/>
<_SilverlightApplicationsNotExist Include="@(_AllSilverlightApplications)" Condition="!Exists('%(Identity)')"/>
</ItemGroup>
</Target>
<!--
============================================================
CopySilverlightApplications
This target copies the output xap files from referenced
Silverlight application projects to the target folder.
============================================================
-->
<Target
Name="CopySilverlightApplications"
DependsOnTargets="_GetSilverlightApplications"
Outputs="@(_WebApplicationSilverlightXapFiles)"
Condition="'$(BuildingInsideVisualStudio)' != 'true'">
<!--
When building this project from the IDE or when building a .SLN from the command-line,
just gather the referenced build outputs (Xap files). The code that builds the .SLN will already have
built the project, so there's no need to do it again here. Since Silverlight only supports AnyCPU that is
what we use for the platform
The ContinueOnError setting is here so that, during project load, as
much information as possible will be passed to the compilers.
-->
<MSBuild
Projects="@(_SilverlightApplications)"
Targets="GetXapOutputFile"
BuildInParallel= "false"
Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration);Platform=AnyCPU;BuildingSolutionFile=false"
Condition="'@(_SilverlightApplications)' != ''"
ContinueOnError="!$(BuildingProject)">
<Output TaskParameter="TargetOutputs" ItemName="_SilverlightXapFiles"/>
</MSBuild>
<!--
Build referenced projects when building from the command line.
The $(ProjectReferenceBuildTargets) will normally be blank so that the project's default
target is used during a P2P reference. However if a custom build process requires that
the referenced project has a different target to build it can be specified.
-->
<MSBuild
Projects="@(_SilverlightApplications)"
Targets="$(ProjectReferenceBuildTargets)"
Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration);Platform=AnyCPU;BuildingSolutionFile=false"
BuildInParallel="false"
Condition="'$(BuildingInsideVisualStudio)' != 'true' and '@(_SilverlightApplications)' != ''">
</MSBuild>
<!--Copy the outputs to the target folder-->
<CopyFilesToFolders SourceFiles="@(_SilverlightXapFiles)"
SilverlightApplications="@(_SilverlightApplications)"
ConfigName="$(Configuration)"
Condition="'@(_SilverlightXapFiles)' != ''">
<Output TaskParameter="DestinationFiles" ItemName="_WebApplicationSilverlightXapFiles" />
</CopyFilesToFolders>
<!-- Issue a warning for each non-existent project. -->
<Warning
Text="The referenced Silverlight project '%(_SilverlightApplicationsNotExist.Identity)' does not exist."
Condition="'@(_SilverlightApplicationsNotExist)'!=''"/>
</Target>
<!--
============================================================
_CopyBinDeployableAssemblies
This target copies the contents of ProjectDir\_bin_deployableAssemblies to the bin
folder, preserving the relative paths
============================================================
-->
<Target
Name="_CopyBinDeployableAssemblies"
Condition="Exists('$(MSBuildProjectDirectory)\_bin_deployableAssemblies')">
<PropertyGroup>
<BinDeployableFolder Condition="'$(BinDeployableFolder)' == ''">_bin_deployableAssemblies\</BinDeployableFolder>
<BinDeployableFolderFullPath>$([System.IO.Path]::GetFullPath($(BinDeployableFolder)))</BinDeployableFolderFullPath>
</PropertyGroup>
<!--Pick up the deployable items from the $(None) collection that are under the _bin_deployableAssemblies folder -->
<CreateItem Include="@(None->'%(Identity)')" Condition="'%(None.FullPath)' != '' And $([System.String]::new('%(None.FullPath)').StartsWith($(BinDeployableFolderFullPath), StringComparison.OrdinalIgnoreCase ))" >
<Output ItemName="__binDeployableAssemblies" TaskParameter="Include"/>
</CreateItem>
<!--Add metadata which holds the destination relative folder to copy them to-->
<ItemGroup>
<_binDeployableAssemblies Include ="@(__binDeployableAssemblies)" Condition="'@(__binDeployableAssemblies)' != ''">
<DestinationRelPath>$([System.String]::Concat($([System.IO.Path]::GetDirectoryName($([System.String]::new('%(__binDeployableAssemblies.FullPath)')))),'\').SubString($(BinDeployableFolderFullPath.Length)))</DestinationRelPath>
</_binDeployableAssemblies>
</ItemGroup>
<!-- Do the copy-->
<Copy SourceFiles="@(_binDeployableAssemblies)" DestinationFolder="$(OutDir)%(_binDeployableAssemblies.DestinationRelPath)"
SkipUnchangedFiles="true"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
<!--Add the items just copied to the collection of items to delete when doing a clean-->
<ItemGroup>
<FileWrites Include ="@(_binDeployableAssemblies->'$(OutDir)%(DestinationRelPath)%(Filename)%(Extension)')" />
</ItemGroup>
</Target>
<!--Import publishing target-->
<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
<!--Ensure the Siliverlight zap file is created and copied to the bin folder for the Microsoft.Web.Publishing.targets-->
<PropertyGroup>
<OnBeforePipelineCollectFilesPhase>
$(OnBeforePipelineCollectFilesPhase);
CopySilverlightApplications;
</OnBeforePipelineCollectFilesPhase>
</PropertyGroup>
</Project>