summaryrefslogtreecommitdiffstats
path: root/build.proj
diff options
context:
space:
mode:
Diffstat (limited to 'build.proj')
-rw-r--r--build.proj215
1 files changed, 148 insertions, 67 deletions
diff --git a/build.proj b/build.proj
index efaec57..fc1257f 100644
--- a/build.proj
+++ b/build.proj
@@ -6,9 +6,13 @@
<ILMergeOutputAssemblyDirectory>$(OutputPath)unified\</ILMergeOutputAssemblyDirectory>
<ILMergeOutputAssembly>$(ILMergeOutputAssemblyDirectory)$(ProductName).dll</ILMergeOutputAssembly>
<ProjectTemplatesLayoutPath>$(IntermediatePath)projecttemplates\</ProjectTemplatesLayoutPath>
- <ProjectTemplatesVsi>$(ProjectTemplatesLayoutPath)DotNetOpenAuth Starter Kits.vsi</ProjectTemplatesVsi>
- <ExtensionVsixLayoutPath>$(IntermediatePath)Vsix\</ExtensionVsixLayoutPath>
- <ExtensionVsix>$(ExtensionVsixLayoutPath)DotNetOpenAuth Starter Kits.vsix</ExtensionVsix>
+
+ <VS2008ProjectTemplatesDirectory>$(IntermediatePath)VS2008projecttemplates\</VS2008ProjectTemplatesDirectory>
+ <ProjectTemplatesVsiDirectory>$(IntermediatePath)vsi\</ProjectTemplatesVsiDirectory>
+
+ <VS2010ProjectTemplatesDirectory>$(IntermediatePath)VS2010projecttemplates\</VS2010ProjectTemplatesDirectory>
+ <ExtensionVsixLayoutDirectory>$(IntermediatePath)Vsix\</ExtensionVsixLayoutDirectory>
+ <ZipLevel>6</ZipLevel>
</PropertyGroup>
<Import Project="$(ProjectRoot)tools\$(ProductName).Versioning.targets"/>
@@ -139,7 +143,8 @@
<Zip ZipFileName="$(ToolsZip)"
Files="@(AllToolTargets)"
- WorkingDirectory="$(ToolsDirectory)" />
+ WorkingDirectory="$(ToolsDirectory)"
+ ZipLevel="$(ZipLevel)" />
</Target>
<Target Name="BuildProjectTemplates">
@@ -183,21 +188,11 @@
<SkipUnchangedFiles Condition="'%(Extension)' != '.csproj'">true</SkipUnchangedFiles>
<SkipUnchangedFiles Condition="'%(Extension)' == '.csproj'">false</SkipUnchangedFiles>
</_ProjectTemplatesTransformSource>
- <_ProjectTemplatesTransformSource Include="@(ProjectTemplatesSource)" Condition="
- '%(Extension)' == '.vscontent'
- ">
- <BeforeTokens>$version$</BeforeTokens>
- <AfterTokens>$(BuildVersion)</AfterTokens>
- <SkipUnchangedFiles>false</SkipUnchangedFiles>
- </_ProjectTemplatesTransformSource>
<ProjectTemplatesSource Remove="@(_ProjectTemplatesTransformSource)" />
<ProjectTemplatesLayout Include="@(ProjectTemplatesSource->'$(ProjectTemplatesLayoutPath)%(RecursiveDir)%(FileName)%(Extension)')"/>
<ProjectTemplatesTransformLayout Include="@(_ProjectTemplatesTransformSource->'$(ProjectTemplatesLayoutPath)%(RecursiveDir)%(FileName)%(Extension)')"/>
- <VSProjectTemplates Include="@(ProjectTemplatesLayout)" Condition="'%(Extension)' == '.vstemplate'" />
- <TopLevelVSProjectTemplates Include="@(VSProjectTemplates)" Condition="'%(RootDir)%(Directory)' == '$(ProjectTemplatesLayoutPath)'" />
-
<!-- Include the template icon -->
<ProjectTemplatesSource Include="$(ProjectRoot)doc\logo\favicon.ico" />
<ProjectTemplatesLayout Include="$(ProjectTemplatesLayoutPath)__TemplateIcon.ico" />
@@ -218,13 +213,13 @@
<FixupReferenceAssemblies Include="@(ProjectTemplateLibrariesTargets)" Condition="'%(Extension)' == '.dll'" />
<InjectedLibraryItems Include="@(ProjectTemplateLibrariesTargets->'lib\%(FileName)%(Extension)')" />
- <VSProjectTemplateZipFiles Include="@(TopLevelVSProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" />
+ <VSProjectTemplates Include="@(ProjectTemplatesLayout)" Condition="'%(Extension)' == '.vstemplate'" />
</ItemGroup>
<Trim Inputs="@(_ProjectTemplatesTransformSource)" MetadataName="BeforeTokens" AllAfter="\">
<Output TaskParameter="Outputs" ItemName="ProjectTemplatesTransformSource" />
</Trim>
- <MSBuild Projects="@(ProjectTemplates)" />
+ <!--<MSBuild Projects="@(ProjectTemplates)" />-->
<Copy SourceFiles="@(ProjectTemplatesSource)" DestinationFiles="@(ProjectTemplatesLayout)" SkipUnchangedFiles="true" />
<CopyWithTokenSubstitution SourceFiles="@(ProjectTemplatesTransformSource)" DestinationFiles="@(ProjectTemplatesTransformLayout)">
<Output TaskParameter="CopiedFiles" ItemName="CopiedProjectTemplateFiles" />
@@ -233,8 +228,6 @@
IntendedFiles="
@(ProjectTemplatesLayout);
@(ProjectTemplatesTransformLayout);
- @(VSProjectTemplateZipFiles);
- $(ProjectTemplatesVsi);
" />
<ChangeProjectReferenceToAssemblyReference
Projects="@(CopiedProjectTemplateFiles)"
@@ -251,10 +244,6 @@
Condition="'%(CopiedProjectTemplateFiles.FileName)%(CopiedProjectTemplateFiles.Extension)' == 'RelyingPartyLogic.csproj'"
Items="@(InjectedLibraryItems)"
/>
- <DowngradeProjects
- Projects="@(CopiedProjectTemplateFiles)"
- Condition="'%(Extension)' == '.csproj'"
- />
<MergeProjectWithVSTemplate
ProjectItemTypes="@(VsTemplateProjectItemTypes)"
ReplaceParametersExtensions="@(VsTemplateParameterReplaceExtensions)"
@@ -262,88 +251,180 @@
/>
</Target>
- <Target Name="ProjectTemplates" DependsOnTargets="ProjectTemplatesLayout">
- <DiscoverProjectTemplates TopLevelTemplates="@(TopLevelVSProjectTemplates)">
- <Output TaskParameter="ProjectTemplates" ItemName="SubVSTemplates" />
- <Output TaskParameter="ProjectTemplateContents" ItemName="TemplateItemContents" />
+ <Target Name="ProjectTemplates2008" DependsOnTargets="ProjectTemplatesLayout">
+ <ItemGroup>
+ <ProjectTemplates2008Source Include="$(ProjectTemplatesLayoutPath)**" />
+ <ProjectTemplates2008Layout Include="@(ProjectTemplates2008Source->'$(VS2008ProjectTemplatesDirectory)%(RecursiveDir)%(FileName)%(Extension)')" />
+ <ProjectTemplates2008Layout>
+ <HardLink Condition=" '%(Extension)' != '.csproj' ">true</HardLink>
+ </ProjectTemplates2008Layout>
+
+ <VS2008ProjectTemplates Include="@(ProjectTemplates2008Layout)" Condition="'%(Extension)' == '.vstemplate'" />
+ <TopLevelVS2008ProjectTemplates Include="@(VS2008ProjectTemplates)" Condition="'%(RootDir)%(Directory)' == '$(VS2008ProjectTemplatesDirectory)'" />
+ <VS2008ProjectTemplateZipFiles Include="@(TopLevelVS2008ProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" />
+ </ItemGroup>
+
+ <HardLinkCopy SourceFiles="@(ProjectTemplates2008Source)" DestinationFiles="@(ProjectTemplates2008Layout)" />
+
+ <DowngradeProjects
+ Projects="@(ProjectTemplates2008Layout)"
+ Condition="'%(Extension)' == '.csproj'"
+ />
+
+ <DiscoverProjectTemplates TopLevelTemplates="@(TopLevelVS2008ProjectTemplates)">
+ <Output TaskParameter="ProjectTemplates" ItemName="SubVS2008Templates" />
+ <Output TaskParameter="ProjectTemplateContents" ItemName="VS2008TemplateItemContents" />
</DiscoverProjectTemplates>
<ItemGroup>
<!-- Include in each template .zip file the top-level .vstemplate file itself. -->
- <VSProjectTemplateContents Include="@(TopLevelVSProjectTemplates)">
- <ZipFile>$(ProjectTemplatesLayoutPath)%(FileName).zip</ZipFile>
- <WorkingDirectory>$(ProjectTemplatesLayoutPath)</WorkingDirectory>
- </VSProjectTemplateContents>
+ <VS2008ProjectTemplateContents Include="@(TopLevelVS2008ProjectTemplates)">
+ <ZipFile>$(ProjectTemplatesVsiDirectory)%(FileName).zip</ZipFile>
+ <WorkingDirectory>$(VS2008ProjectTemplatesDirectory)</WorkingDirectory>
+ </VS2008ProjectTemplateContents>
<!-- Now throw in all the files in each of the project-level template's directories and their children. -->
- <VSProjectTemplateContents Include="@(TemplateItemContents)">
- <ZipFile>$(ProjectTemplatesLayoutPath)%(TemplateItemContents.TopLevelTemplateFileName).zip</ZipFile>
- <WorkingDirectory>$(ProjectTemplatesLayoutPath)</WorkingDirectory>
- </VSProjectTemplateContents>
+ <VS2008ProjectTemplateContents Include="@(VS2008TemplateItemContents)">
+ <ZipFile>$(ProjectTemplatesVsiDirectory)%(VS2008TemplateItemContents.TopLevelTemplateFileName).zip</ZipFile>
+ <WorkingDirectory>$(VS2008ProjectTemplatesDirectory)</WorkingDirectory>
+ </VS2008ProjectTemplateContents>
<!-- Include the template icon for each .zip file. -->
- <VSProjectTemplateContents Include="@(TopLevelVSProjectTemplates->'$(ProjectTemplatesLayoutPath)__TemplateIcon.ico')">
- <ZipFile>$(ProjectTemplatesLayoutPath)%(TopLevelVSProjectTemplates.FileName).zip</ZipFile>
- <WorkingDirectory>$(ProjectTemplatesLayoutPath)</WorkingDirectory>
- </VSProjectTemplateContents>
+ <VS2008ProjectTemplateContents Include="@(TopLevelVS2008ProjectTemplates->'$(VS2008ProjectTemplatesDirectory)__TemplateIcon.ico')">
+ <ZipFile>$(ProjectTemplatesVsiDirectory)%(TopLevelVS2008ProjectTemplates.FileName).zip</ZipFile>
+ <WorkingDirectory>$(VS2008ProjectTemplatesDirectory)</WorkingDirectory>
+ </VS2008ProjectTemplateContents>
</ItemGroup>
<Zip
- Files="@(VSProjectTemplateContents)"
- ZipFileName="%(VSProjectTemplateContents.ZipFile)"
- WorkingDirectory="%(VSProjectTemplateContents.WorkingDirectory)"
+ Files="@(VS2008ProjectTemplateContents)"
+ ZipFileName="%(VS2008ProjectTemplateContents.ZipFile)"
+ WorkingDirectory="%(VS2008ProjectTemplateContents.WorkingDirectory)"
+ ZipLevel="$(ZipLevel)"
/>
+
+ <Purge Directories="$(VS2008ProjectTemplatesDirectory)" IntendedFiles="@(ProjectTemplates2008Layout)" />
</Target>
- <Target Name="vsi" DependsOnTargets="ProjectTemplates">
+ <Target Name="ProjectTemplates2010" DependsOnTargets="ProjectTemplatesLayout">
+ <ItemGroup>
+ <ProjectTemplates2010Source Include="$(ProjectTemplatesLayoutPath)**" />
+ <ProjectTemplates2010Layout Include="@(ProjectTemplates2010Source->'$(VS2010ProjectTemplatesDirectory)%(RecursiveDir)%(FileName)%(Extension)')" />
+ <ProjectTemplates2010Layout>
+ <HardLink Condition=" '%(Extension)' != '.csproj' ">true</HardLink>
+ </ProjectTemplates2010Layout>
+
+ <VS2010ProjectTemplates Include="@(ProjectTemplates2010Layout)" Condition="'%(Extension)' == '.vstemplate'" />
+ <TopLevelVS2010ProjectTemplates Include="@(VS2010ProjectTemplates)" Condition="'%(RootDir)%(Directory)' == '$(VS2010ProjectTemplatesDirectory)'" />
+ <VS2010ProjectTemplateZipFiles Include="@(TopLevelVS2010ProjectTemplates->'%(RootDir)%(Directory)%(FileName).zip')" />
+ </ItemGroup>
+
+ <HardLinkCopy SourceFiles="@(ProjectTemplates2010Source)" DestinationFiles="@(ProjectTemplates2010Layout)" />
+
+ <DiscoverProjectTemplates TopLevelTemplates="@(TopLevelVS2010ProjectTemplates)">
+ <Output TaskParameter="ProjectTemplates" ItemName="SubVS2010Templates" />
+ <Output TaskParameter="ProjectTemplateContents" ItemName="VS2010TemplateItemContents" />
+ </DiscoverProjectTemplates>
+
<ItemGroup>
+ <!-- Include in each template .zip file the top-level .vstemplate file itself. -->
+ <VS2010ProjectTemplateContents Include="@(TopLevelVS2010ProjectTemplates)">
+ <ZipFile>$(ExtensionVsixLayoutDirectory)%(FileName)\%(FileName).zip</ZipFile>
+ <WorkingDirectory>$(VS2010ProjectTemplatesDirectory)</WorkingDirectory>
+ </VS2010ProjectTemplateContents>
+
+ <!-- Now throw in all the files in each of the project-level template's directories and their children. -->
+ <VS2010ProjectTemplateContents Include="@(VS2010TemplateItemContents)">
+ <ZipFile>$(ExtensionVsixLayoutDirectory)%(VS2010TemplateItemContents.TopLevelTemplateFileName)\%(VS2010TemplateItemContents.TopLevelTemplateFileName).zip</ZipFile>
+ <WorkingDirectory>$(VS2010ProjectTemplatesDirectory)</WorkingDirectory>
+ </VS2010ProjectTemplateContents>
+
+ <!-- Include the template icon for each .zip file. -->
+ <VS2010ProjectTemplateContents Include="@(TopLevelVS2010ProjectTemplates->'$(VS2010ProjectTemplatesDirectory)__TemplateIcon.ico')">
+ <ZipFile>$(ExtensionVsixLayoutDirectory)%(TopLevelVS2010ProjectTemplates.FileName)\%(TopLevelVS2010ProjectTemplates.FileName).zip</ZipFile>
+ <WorkingDirectory>$(VS2010ProjectTemplatesDirectory)</WorkingDirectory>
+ </VS2010ProjectTemplateContents>
+
+ <ExtensionVsixContents Include="%(VS2010ProjectTemplateContents.ZipFile)" />
+ </ItemGroup>
+
+ <Zip
+ Files="@(VS2010ProjectTemplateContents)"
+ ZipFileName="%(VS2010ProjectTemplateContents.ZipFile)"
+ WorkingDirectory="%(VS2010ProjectTemplateContents.WorkingDirectory)"
+ ZipLevel="$(ZipLevel)"
+ />
+ </Target>
+
+ <Target Name="vsi" DependsOnTargets="ProjectTemplates2008">
+ <PropertyGroup>
+ <ProjectTemplatesVsi>$(DropDirectoryNoSlash).vsi</ProjectTemplatesVsi>
+ </PropertyGroup>
+ <ItemGroup>
+ <VsiTransformSource Include="$(ProjectRoot)vsi\*.vscontent">
+ <BeforeTokens>$version$</BeforeTokens>
+ <AfterTokens>$(BuildVersion)</AfterTokens>
+ <SkipUnchangedFiles>false</SkipUnchangedFiles>
+ </VsiTransformSource>
+ <VsiTransformLayout Include="@(VsiTransformSource->'$(ProjectTemplatesVsiDirectory)%(RecursiveDir)%(FileName)%(Extension)')" />
+
<ProjectTemplateVsiContents Include="
- $(ProjectTemplatesLayoutPath)*.vscontent;
- $(ProjectTemplatesLayoutPath)*.zip
+ $(ProjectTemplatesVsiDirectory)*.zip;
+ @(VsiTransformLayout);
" />
</ItemGroup>
+ <CopyWithTokenSubstitution SourceFiles="@(VsiTransformSource)" DestinationFiles="@(VsiTransformLayout)" />
+
<Zip
Files="@(ProjectTemplateVsiContents)"
ZipFileName="$(ProjectTemplatesVsi)"
- WorkingDirectory="$(ProjectTemplatesLayoutPath)"
+ WorkingDirectory="$(ProjectTemplatesVsiDirectory)"
+ ZipLevel="$(ZipLevel)"
/>
</Target>
- <Target Name="VsixLayout" DependsOnTargets="GetBuildVersion">
+ <Target Name="VsixLayout" DependsOnTargets="ProjectTemplates2010">
<ItemGroup>
+ <ProjectTemplates2010TransformSource Include="
+ $(ProjectRoot)vsix\extension.vsixmanifest;
+ $(ProjectRoot)LICENSE.txt;
+ ">
+ <BeforeTokens>$version$</BeforeTokens>
+ <AfterTokens>$(BuildVersion)</AfterTokens>
+ <SkipUnchangedFiles>false</SkipUnchangedFiles>
+ </ProjectTemplates2010TransformSource>
+ <ProjectTemplates2010TransformLayout Include="@(ProjectTemplates2010TransformSource->'$(ExtensionVsixLayoutDirectory)%(RecursiveDir)%(FileName)%(Extension)')" />
+
<ExtensionVsixSources Include="
- $(ProjectRoot)vsix\[Content_Types].xml;
- $(ProjectRoot)LICENSE.txt;
- $(ProjectRoot)doc\logo\dnoa-logo.png;
- $(ProjectRoot)doc\logo\dnoa-logo_64x64.png;
- ">
- <SkipUnchangedFiles>true</SkipUnchangedFiles>
- </ExtensionVsixSources>
- <ExtensionVsixSources Include="
+ $(ProjectRoot)vsix\*;
+ " Exclude="
$(ProjectRoot)vsix\extension.vsixmanifest;
">
<SkipUnchangedFiles>true</SkipUnchangedFiles>
- <BeforeTokens>$version$</BeforeTokens>
- <AfterTokens>$(BuildVersion)</AfterTokens>
</ExtensionVsixSources>
- <ExtensionVsixContents Include="@(ExtensionVsixSources->'$(ExtensionVsixLayoutPath)%(FileName)%(Extension)')" />
+
+ <ExtensionVsixTargets Include="@(ExtensionVsixSources->'$(ExtensionVsixLayoutDirectory)%(FileName)%(Extension)')" />
+
+ <ExtensionVsixContents Include="
+ @(ExtensionVsixTargets);
+ @(ProjectTemplates2010TransformLayout);
+ "/>
</ItemGroup>
- <CopyWithTokenSubstitution SourceFiles="@(ExtensionVsixSources)"
- DestinationFiles="@(ExtensionVsixContents)" />
- <Purge Directories="$(ExtensionVsixLayoutPath)"
- IntendedFiles="
- @(ExtensionVsixContents);
- $(ExtensionVsix);
- " />
+ <Copy SourceFiles="@(ExtensionVsixSources)" DestinationFiles="@(ExtensionVsixTargets)" SkipUnchangedFiles="true" />
+ <CopyWithTokenSubstitution SourceFiles="@(ProjectTemplates2010TransformSource)" DestinationFiles="@(ProjectTemplates2010TransformLayout)" />
</Target>
- <Target Name="vsix" DependsOnTargets="VsixLayout">
+ <Target Name="vsix" DependsOnTargets="VsixLayout;_SetDropProperties">
+ <PropertyGroup>
+ <ExtensionVsix>$(DropDirectoryNoSlash).vsix</ExtensionVsix>
+ </PropertyGroup>
<Zip
Files="@(ExtensionVsixContents)"
ZipFileName="$(ExtensionVsix)"
- WorkingDirectory="$(ExtensionVsixLayoutPath)"
+ WorkingDirectory="$(ExtensionVsixLayoutDirectory)"
+ ZipLevel="$(ZipLevel)"
/>
</Target>
@@ -489,7 +570,7 @@
<PropertyGroup>
<DropZip>$(DropDirectoryNoSlash).zip</DropZip>
</PropertyGroup>
- <Zip Files="@(AllDropTargets)" ZipFileName="$(DropZip)" WorkingDirectory="$(DropsRoot)" />
+ <Zip Files="@(AllDropTargets)" ZipFileName="$(DropZip)" WorkingDirectory="$(DropsRoot)" ZipLevel="$(ZipLevel)" />
</Target>
<!-- Although Nightly includes publishing samples and docs, those targets are conditioned for