Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorDavid Karlaš <david.karlas@xamarin.com>2017-02-22 14:49:05 +0300
committerDavid Karlaš <david.karlas@xamarin.com>2017-02-22 14:49:29 +0300
commitf3fac4013a671bba3435d7b545b4b3105b7156c3 (patch)
tree0a8df38541b9378016af484f320712d0340b0960 /main/src
parent76c4205868c8e76a7c980f8f09a34b75e2114262 (diff)
[Templating] Initial support for https://github.com/dotnet/templating format and DotNetCore templates port
Diffstat (limited to 'main/src')
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj95
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Properties/MonoDevelop.DotNetCore.addin.xml74
-rwxr-xr-xmain/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs9
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs.xft.xml19
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.csproj8
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.xpt.xml23
-rwxr-xr-xmain/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs24
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs.xft.xml19
-rwxr-xr-xmain/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs37
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs.xft.xml19
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.csproj11
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.xpt.xml23
-rwxr-xr-xmain/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs11
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs.xft.xml19
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.csproj7
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.xpt.xml23
-rwxr-xr-xmain/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs13
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs.xft.xml19
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.csproj13
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.xpt.xml23
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/pull-package.cs53
-rw-r--r--main/src/core/MonoDevelop.Ide/ExtensionModel/Templates.addin.xml6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs72
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/IProjectTemplatingProvider.cs3
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProcessedTemplateResult.cs67
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs225
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs64
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplatingProvider.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplatingService.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj31
-rw-r--r--main/src/core/MonoDevelop.Ide/packages.config9
32 files changed, 630 insertions, 405 deletions
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj
index f3cd2c082d..da65d22f05 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj
@@ -10,6 +10,9 @@
<RootNamespace>MonoDevelop.DotNetCore</RootNamespace>
<AssemblyName>MonoDevelop.DotNetCore</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+ <MonoLauncher Condition=" '$(VisualStudioVersion)' == '' ">mono </MonoLauncher>
+ <NuGetUrl>https://dotnet.myget.org/F/templating/api/v2/package/</NuGetUrl>
+ <TemplatesVersion>1.0.0-beta1-20170216-123</TemplatesVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -109,12 +112,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="MonoDevelop.DotNetCore\" />
- <Folder Include="Templates\" />
- <Folder Include="Templates\Projects\" />
- <Folder Include="Templates\Projects\Console\" />
<Folder Include="MonoDevelop.DotNetCore.Templating\" />
- <Folder Include="Templates\Projects\Library\" />
- <Folder Include="Templates\Projects\EmptyWeb\" />
<Folder Include="MonoDevelop.DotNetCore.UnitTesting\" />
</ItemGroup>
<ItemGroup>
@@ -165,61 +163,40 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
- <None Include="Templates\Projects\Console\ConsoleProject.csproj">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Console\ConsoleProject.xpt.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Console\ConsoleProject.Program.cs.xft.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Console\ConsoleProject.Program.cs">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Library\LibraryProject.csproj">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Library\LibraryProject.MyClass.cs">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Library\LibraryProject.MyClass.cs.xft.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\Library\LibraryProject.xpt.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\EmptyWeb\EmptyWebProject.csproj">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\EmptyWeb\EmptyWebProject.Program.cs">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\EmptyWeb\EmptyWebProject.Program.cs.xft.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\EmptyWeb\EmptyWebProject.xpt.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\EmptyWeb\EmptyWebProject.Startup.cs.xft.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\EmptyWeb\EmptyWebProject.Startup.cs">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
<None Include="packages.config" />
- <None Include="Templates\Projects\XUnitTest\XUnitTestProject.Test.cs.xft.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\XUnitTest\XUnitTestProject.csproj">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\XUnitTest\XUnitTestProject.xpt.xml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="Templates\Projects\XUnitTest\XUnitTestProject.Test.cs">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
+ <None Include="pull-package.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Target Name="CompilePullPackage" Inputs="pull-package.cs" Outputs="pull-package.exe">
+ <Csc Sources="pull-package.cs" OutputAssembly="pull-package.exe" ToolExe="$(CscToolExe)" ToolPath="$(CscToolPath)" />
+ </Target>
+ <Target Name="DownloadTemplates" BeforeTargets="Build" DependsOnTargets="CompilePullPackage">
+ <ItemGroup>
+ <NuGetPackage Include="Microsoft.DotNet.Common.ProjectTemplates.1.x">
+ <Url>$(NuGetUrl)Microsoft.DotNet.Common.ProjectTemplates.1.x/$(TemplatesVersion)</Url>
+ <OutputPackage>$(OutputPath)Templates\Microsoft.DotNet.Common.ProjectTemplates.1.x.$(TemplatesVersion).nupkg</OutputPackage>
+ </NuGetPackage>
+ <NuGetPackage Include="Microsoft.DotNet.Common.ProjectTemplates.2.0">
+ <Url>$(NuGetUrl)Microsoft.DotNet.Common.ProjectTemplates.2.0/$(TemplatesVersion)</Url>
+ <OutputPackage>$(OutputPath)Templates\Microsoft.DotNet.Common.ProjectTemplates.2.0.$(TemplatesVersion).nupkg</OutputPackage>
+ </NuGetPackage>
+ <NuGetPackage Include="Microsoft.DotNet.Test.ProjectTemplates.1.x">
+ <Url>$(NuGetUrl)Microsoft.DotNet.Test.ProjectTemplates.1.x/$(TemplatesVersion)</Url>
+ <OutputPackage>$(OutputPath)Templates\Microsoft.DotNet.Test.ProjectTemplates.1.x.$(TemplatesVersion).nupkg</OutputPackage>
+ </NuGetPackage>
+ <NuGetPackage Include="Microsoft.DotNet.Test.ProjectTemplates.2.0">
+ <Url>$(NuGetUrl)Microsoft.DotNet.Test.ProjectTemplates.2.0/$(TemplatesVersion)</Url>
+ <OutputPackage>$(OutputPath)Templates\Microsoft.DotNet.Test.ProjectTemplates.2.0.$(TemplatesVersion).nupkg</OutputPackage>
+ </NuGetPackage>
+ <NuGetPackage Include="Microsoft.DotNet.Web.ProjectTemplates.1.x">
+ <Url>$(NuGetUrl)Microsoft.DotNet.Web.ProjectTemplates.1.x/$(TemplatesVersion)</Url>
+ <OutputPackage>$(OutputPath)Templates\Microsoft.DotNet.Web.ProjectTemplates.1.x.$(TemplatesVersion).nupkg</OutputPackage>
+ </NuGetPackage>
+ <NuGetPackage Include="Microsoft.DotNet.Web.ProjectTemplates.2.0">
+ <Url>$(NuGetUrl)Microsoft.DotNet.Web.ProjectTemplates.2.0/$(TemplatesVersion)</Url>
+ <OutputPackage>$(OutputPath)Templates\Microsoft.DotNet.Web.ProjectTemplates.2.0.$(TemplatesVersion).nupkg</OutputPackage>
+ </NuGetPackage>
+ </ItemGroup>
+ <Exec Command="$(MonoLauncher)$(MSBuildProjectDirectory)\pull-package.exe %(NuGetPackage.Url) %(NuGetPackage.OutputPackage)" Condition="!Exists('%(NuGetPackage.OutputPackage)')" WorkingDirectory="$(MSBuildProjectDirectory)" />
+ </Target>
</Project> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Properties/MonoDevelop.DotNetCore.addin.xml b/main/src/addins/MonoDevelop.DotNetCore/Properties/MonoDevelop.DotNetCore.addin.xml
index 6be9fdd51f..9d55c0f3df 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/Properties/MonoDevelop.DotNetCore.addin.xml
+++ b/main/src/addins/MonoDevelop.DotNetCore/Properties/MonoDevelop.DotNetCore.addin.xml
@@ -18,19 +18,67 @@
</Category>
</Extension>
- <Extension path="/MonoDevelop/Ide/ProjectTemplates">
- <ProjectTemplate
- id="DotNetCoreConsoleProject"
- file="Templates/Projects/Console/ConsoleProject.xpt.xml" />
- <ProjectTemplate
- id="DotNetCoreLibraryProject"
- file="Templates/Projects/Library/LibraryProject.xpt.xml" />
- <ProjectTemplate
- id="DotNetCoreEmptyWebProject"
- file="Templates/Projects/EmptyWeb/EmptyWebProject.xpt.xml" />
- <ProjectTemplate
- id="DotNetCoreEmptyWebProject"
- file="Templates/Projects/XUnitTest/XUnitTestProject.xpt.xml" />
+ <Extension path="/MonoDevelop/Ide/Templates">
+ <Template
+ id="Microsoft.Common.Console.CSharp"
+ path="Templates/Microsoft.DotNet.Common.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-console-project"
+ imageId="md-console-project"
+ category="netcore/app/general"/>
+ <Template
+ id="Microsoft.Common.Console.FSharp"
+ path="Templates/Microsoft.DotNet.Common.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-console-project"
+ imageId="md-console-project"
+ category="netcore/app/general"/>
+ <Template
+ id="Microsoft.Common.Library.CSharp"
+ path="Templates/Microsoft.DotNet.Common.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-library-project"
+ imageId="md-library-project"
+ category="netcore/library/general" />
+ <Template
+ id="Microsoft.Common.Library.FSharp"
+ path="Templates/Microsoft.DotNet.Common.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-library-project"
+ imageId="md-library-project"
+ category="netcore/library/general" />
+ <Template
+ id="Microsoft.Test.xUnit.CSharp"
+ path="Templates/Microsoft.DotNet.Test.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-test-project"
+ imageId="md-test-project"
+ category="netcore/test/general" />
+ <Template
+ id="Microsoft.Test.xUnit.FSharp"
+ path="Templates/Microsoft.DotNet.Test.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-test-project"
+ imageId="md-test-project"
+ category="netcore/test/general" />
+ <Template
+ id="Microsoft.Web.Empty.CSharp"
+ path="Templates/Microsoft.DotNet.Web.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-aspnet-empty-project"
+ imageId="md-aspnet-empty-project"
+ category="netcore/app/aspnet" />
+ <Template
+ id="Microsoft.Web.Mvc.CSharp"
+ path="Templates/Microsoft.DotNet.Web.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-aspnet-empty-project"
+ imageId="md-aspnet-empty-project"
+ category="netcore/app/aspnet" />
+ <Template
+ id="Microsoft.Web.Mvc.FSharp"
+ path="Templates/Microsoft.DotNet.Web.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-aspnet-empty-project"
+ imageId="md-aspnet-empty-project"
+ category="netcore/app/aspnet" />
+ <Template
+ id="Microsoft.Web.WebApi.CSharp"
+ path="Templates/Microsoft.DotNet.Web.ProjectTemplates.1.x.1.0.0-beta1-20170216-123.nupkg"
+ icon="md-aspnet-empty-project"
+ imageId="md-aspnet-empty-project"
+ category="netcore/app/aspnet" />
</Extension>
<Extension path="/MonoDevelop/Ide/ProjectTemplateWizards">
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs
deleted file mode 100755
index c81448f540..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System;
-
-class Program
-{
- static void Main(string[] args)
- {
- Console.WriteLine("Hello World!");
- }
-}
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs.xft.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs.xft.xml
deleted file mode 100644
index f48622775d..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.Program.cs.xft.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="2015/09/22"
- lastModified="2015/09/22">
-
- <TemplateConfiguration>
- <_Name>Console Program.cs</_Name>
- </TemplateConfiguration>
-
- <TemplateFiles>
- <File
- name="Program.cs"
- DefaultName="Program.cs"
- src="ConsoleProject.Program.cs"
- BuildAction="Compile"
- AddStandardHeader="True" />
- </TemplateFiles>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.csproj b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.csproj
deleted file mode 100644
index 5e1611f89d..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.csproj
+++ /dev/null
@@ -1,8 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <OutputType>Exe</OutputType>
- <TargetFramework>netcoreapp1.0</TargetFramework>
- </PropertyGroup>
-
-</Project>
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.xpt.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.xpt.xml
deleted file mode 100644
index 6b34e03785..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Console/ConsoleProject.xpt.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="06/09/2015"
- lastModified="31/10/2016">
-
- <TemplateConfiguration>
- <_Name>Console Application (.NET Core)</_Name>
- <Category>netcore/app/general</Category>
- <Icon>md-console-project</Icon>
- <Image id="md-console-project" />
- <LanguageName>C#</LanguageName>
- <_Description>Creates a new .NET Core console project.</_Description>
- <DefaultFilename>ConsoleProject</DefaultFilename>
- <Wizard>MonoDevelop.DotNetCore.ProjectTemplateWizard</Wizard>
- <DefaultParameters>Template=ConsoleProject;OpenFile=Program.cs;Files=Program.cs;ExternalConsole=true</DefaultParameters>
- </TemplateConfiguration>
-
- <Combine name="${ProjectName}" directory=".">
- <Project name="${ProjectName}" type="C#" directory="./" if="CreateDotNetCoreProject">
- </Project>
- </Combine>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs
deleted file mode 100755
index 9046074545..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Hosting;
-
-namespace ${Namespace}
-{
- public class Program
- {
- public static void Main(string[] args)
- {
- var host = new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIISIntegration()
- .UseStartup<Startup>()
- .Build();
-
- host.Run();
- }
- }
-} \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs.xft.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs.xft.xml
deleted file mode 100644
index 4bb9067fc2..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Program.cs.xft.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="2015/09/22"
- lastModified="2015/09/22">
-
- <TemplateConfiguration>
- <_Name>Empty web Program.cs</_Name>
- </TemplateConfiguration>
-
- <TemplateFiles>
- <File
- name="Program.cs"
- DefaultName="Program.cs"
- src="EmptyWebProject.Program.cs"
- BuildAction="Compile"
- AddStandardHeader="True" />
- </TemplateFiles>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs
deleted file mode 100755
index 857cd56db1..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-
-namespace ${Namespace}
-{
- public class Startup
- {
- // This method gets called by the runtime. Use this method to add services to the container.
- // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
- public void ConfigureServices(IServiceCollection services)
- {
- }
-
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
- {
- loggerFactory.AddConsole();
-
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
-
- app.Run(async (context) =>
- {
- await context.Response.WriteAsync("Hello World!");
- });
- }
- }
-} \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs.xft.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs.xft.xml
deleted file mode 100644
index 4bfb057a29..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.Startup.cs.xft.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="2015/09/22"
- lastModified="2015/09/22">
-
- <TemplateConfiguration>
- <_Name>Empty web Startup.cs</_Name>
- </TemplateConfiguration>
-
- <TemplateFiles>
- <File
- name="Startup.cs"
- DefaultName="Startup.cs"
- src="EmptyWebProject.Startup.cs"
- BuildAction="Compile"
- AddStandardHeader="True" />
- </TemplateFiles>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.csproj b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.csproj
deleted file mode 100644
index f71ef36b61..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
- <PropertyGroup>
- <TargetFramework>netcoreapp1.0</TargetFramework>
- </PropertyGroup>
-
- <ItemGroup>
- <PackageReference Include="Microsoft.AspNetCore" Version="1.0.3" />
- </ItemGroup>
-
-</Project>
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.xpt.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.xpt.xml
deleted file mode 100644
index 35b5311939..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/EmptyWeb/EmptyWebProject.xpt.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="06/09/2015"
- lastModified="31/10/2016">
-
- <TemplateConfiguration>
- <_Name>ASP.NET Core Empty Web Application</_Name>
- <Category>netcore/app/aspnet</Category>
- <Icon>md-aspnet-empty-project</Icon>
- <Image id="md-aspnet-empty-project" />
- <LanguageName>C#</LanguageName>
- <_Description>Creates a new ASP.NET Core web project.</_Description>
- <DefaultFilename>WebApp</DefaultFilename>
- <Wizard>MonoDevelop.DotNetCore.ProjectTemplateWizard</Wizard>
- <DefaultParameters>Template=EmptyWebProject;CreateWebRoot=true;OpenFile=Startup.cs;Files=Startup.cs|Program.cs</DefaultParameters>
- </TemplateConfiguration>
-
- <Combine name="${ProjectName}" directory=".">
- <Project name="${ProjectName}" type="C#" directory="./src" if="CreateDotNetCoreProject">
- </Project>
- </Combine>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs
deleted file mode 100755
index fc20e2f546..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-
-namespace ${Namespace}
-{
- public class MyClass
- {
- public MyClass()
- {
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs.xft.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs.xft.xml
deleted file mode 100644
index 3f7e462005..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.MyClass.cs.xft.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="2015/09/13"
- lastModified="2015/09/13">
-
- <TemplateConfiguration>
- <_Name>Library MyClass.cs</_Name>
- </TemplateConfiguration>
-
- <TemplateFiles>
- <File
- name="MyClass.cs"
- DefaultName="MyClass.cs"
- src="LibraryProject.MyClass.cs"
- BuildAction="Compile"
- AddStandardHeader="True" />
- </TemplateFiles>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.csproj b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.csproj
deleted file mode 100644
index 20861435dc..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.csproj
+++ /dev/null
@@ -1,7 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <TargetFramework>netstandard1.4</TargetFramework>
- </PropertyGroup>
-
-</Project>
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.xpt.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.xpt.xml
deleted file mode 100644
index 529ca1fd7c..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/Library/LibraryProject.xpt.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="12/09/2015"
- lastModified="31/10/2016">
-
- <TemplateConfiguration>
- <_Name>Class Library (.NET Core)</_Name>
- <Category>netcore/library/general</Category>
- <Icon>md-library-project</Icon>
- <Image id="md-library-project" />
- <LanguageName>C#</LanguageName>
- <_Description>Creates a new .NET Core class library project.</_Description>
- <DefaultFilename>ClassLibrary</DefaultFilename>
- <Wizard>MonoDevelop.DotNetCore.ProjectTemplateWizard</Wizard>
- <DefaultParameters>Template=LibraryProject;OpenFile=MyClass.cs;Files=MyClass.cs</DefaultParameters>
- </TemplateConfiguration>
-
- <Combine name="${ProjectName}" directory=".">
- <Project name="${ProjectName}" type="C#" directory="./" if="CreateDotNetCoreProject">
- </Project>
- </Combine>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs
deleted file mode 100755
index 02156e0bbb..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using Xunit;
-
-namespace ${Namespace}
-{
- public class Test
- {
- [Fact]
- public void TestCase()
- {
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs.xft.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs.xft.xml
deleted file mode 100644
index 2f41bb949e..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.Test.cs.xft.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="2017/02/07"
- lastModified="2017/02/07">
-
- <TemplateConfiguration>
- <_Name>Xunit Test.cs</_Name>
- </TemplateConfiguration>
-
- <TemplateFiles>
- <File
- name="Test.cs"
- DefaultName="Test.cs"
- src="XUnitTestProject.Test.cs"
- BuildAction="Compile"
- AddStandardHeader="True" />
- </TemplateFiles>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.csproj b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.csproj
deleted file mode 100644
index 6c4af8a52a..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <TargetFramework>netcoreapp1.0</TargetFramework>
- </PropertyGroup>
-
- <ItemGroup>
- <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-preview-20170123-02" />
- <PackageReference Include="xunit" Version="2.2.0-beta5-build3474" />
- <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0-beta5-build1225" />
- </ItemGroup>
-
-</Project>
diff --git a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.xpt.xml b/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.xpt.xml
deleted file mode 100644
index f0f55cd3d6..0000000000
--- a/main/src/addins/MonoDevelop.DotNetCore/Templates/Projects/XUnitTest/XUnitTestProject.xpt.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<Template
- originator="Matt Ward"
- created="12/09/2015"
- lastModified="31/10/2016">
-
- <TemplateConfiguration>
- <_Name>xUnit Library (.NET Core)</_Name>
- <Category>netcore/test/general</Category>
- <Icon>md-test-project</Icon>
- <Image id="md-test-project" />
- <LanguageName>C#</LanguageName>
- <_Description>Creates a new xUnit test project.</_Description>
- <DefaultFilename>ClassLibrary</DefaultFilename>
- <Wizard>MonoDevelop.DotNetCore.ProjectTemplateWizard</Wizard>
- <DefaultParameters>Template=XUnitTestProject;OpenFile=Test.cs;Files=Test.cs</DefaultParameters>
- </TemplateConfiguration>
-
- <Combine name="${ProjectName}" directory=".">
- <Project name="${ProjectName}" type="C#" directory="./" if="CreateDotNetCoreProject">
- </Project>
- </Combine>
-</Template> \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.DotNetCore/pull-package.cs b/main/src/addins/MonoDevelop.DotNetCore/pull-package.cs
new file mode 100644
index 0000000000..15eaedd2a2
--- /dev/null
+++ b/main/src/addins/MonoDevelop.DotNetCore/pull-package.cs
@@ -0,0 +1,53 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Net;
+
+public class App
+{
+ static string CacheDirectory {
+ get {
+ return Path.Combine (
+ Environment.GetFolderPath (Environment.SpecialFolder.Personal),
+ "Cache",
+ "xs-compilation"
+ );
+ }
+ }
+
+ public static int Main (string [] args)
+ {
+ //Reason for this cache is not to save time on downloading file on fresh build
+ //but in case downloading fails/you don't have internet connection it uses old cache
+ //so this cache should probably be called backup :)
+
+ var sourceUrl = new Uri (args [0]);
+ var destFile = args [1];
+ var cachePath = Path.Combine (CacheDirectory, Path.GetFileName (destFile));
+ var cacheTmpPath = cachePath + ".tmp";
+
+ Console.WriteLine ("Creating directories: {0} and {1}", CacheDirectory, Path.GetDirectoryName (destFile));
+ Directory.CreateDirectory (CacheDirectory);
+ Directory.CreateDirectory (Path.GetDirectoryName (destFile));
+
+ Console.WriteLine ("Downloading file: '{0}' to cache at '{1}'", sourceUrl, cachePath);
+ try {
+ WebClient wc = new WebClient ();
+ wc.DownloadFile (sourceUrl, cacheTmpPath);
+ File.Delete (cachePath);
+ File.Move (cacheTmpPath, cachePath);
+ } catch (Exception ex) {
+ Console.WriteLine ("Could not download the package from {0}. {1}", sourceUrl, ex);
+ }
+
+ if (File.Exists (cachePath)) {
+ Console.WriteLine ("Using the file from the cache directory. Copying {0} to {1}", cachePath, destFile);
+ File.Delete (destFile);
+ File.Copy (cachePath, destFile);
+ return 0;
+ } else {
+ Console.WriteLine ("The file was not found in the cache directory... failing");
+ return 1;
+ }
+ }
+} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Ide/ExtensionModel/Templates.addin.xml b/main/src/core/MonoDevelop.Ide/ExtensionModel/Templates.addin.xml
index c3e112602f..e936cf1dc5 100644
--- a/main/src/core/MonoDevelop.Ide/ExtensionModel/Templates.addin.xml
+++ b/main/src/core/MonoDevelop.Ide/ExtensionModel/Templates.addin.xml
@@ -21,6 +21,11 @@
<ExtensionNode name="ProjectTemplate" type="MonoDevelop.Ide.Codons.ProjectTemplateCodon"/>
</ExtensionPoint>
+<ExtensionPoint path = "/MonoDevelop/Ide/Templates" name = "Microsoft Templating Engine templates">
+ <Description>Microsoft templating engine project templates to be shown in the New Project dialog.</Description>
+ <ExtensionNode name="Template" type="MonoDevelop.Ide.Codons.TemplateExtensionNode"/>
+</ExtensionPoint>
+
<ExtensionPoint path = "/MonoDevelop/Ide/ProjectTemplatePackageInstallers" name = "Project template package installers">
<Description>Installs packages defined in the project template. Must implement MonoDevelop.Ide.Templates.ProjectTemplatePackageInstaller</Description>
<ExtensionNode name="Class" />
@@ -121,6 +126,7 @@
<Extension path="/MonoDevelop/Ide/ProjectTemplatingProviders">
<Class id="MonoDevelop.ProjectTemplatingProvider" class="MonoDevelop.Ide.Templates.ProjectTemplatingProvider" />
+ <Class id="MonoDevelop.MicrosoftTemplateEngineProjectTemplatingProvider" class="MonoDevelop.Ide.Templates.MicrosoftTemplateEngineProjectTemplatingProvider" />
</Extension>
<Extension path="/MonoDevelop/Ide/TemplateImages">
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs
new file mode 100644
index 0000000000..daa551b072
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs
@@ -0,0 +1,72 @@
+//
+// TemplateExtensionNode.cs
+//
+// Author:
+// David Karlaš <david.karlas@xamarin.com>
+//
+// Copyright (c) 2017 Xamarin, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Mono.Addins;
+
+namespace MonoDevelop.Ide.Codons
+{
+ [ExtensionNode (Description = "Template informations.")]
+ internal class TemplateExtensionNode : ExtensionNode
+ {
+ [NodeAttribute ("category", "Category used to place template into correct category inside new project dialog.")]
+ string category;
+
+ public string Category {
+ get {
+ return category;
+ }
+ }
+
+ [NodeAttribute ("path", "Either .nupkg file or folder.")]
+ string path;
+
+ public string ScanPath {
+ get {
+ return Addin.GetFilePath (path);
+ }
+ }
+
+
+ [NodeAttribute ("icon", "Icon to display in new project dialog.")]
+ string icon;
+
+ public string Icon {
+ get {
+ return ImageService.GetStockId (Addin, icon, Gtk.IconSize.Dnd);
+ }
+ }
+
+
+ [NodeAttribute ("imageId", "ImageId of image showed in new project dialog description of project.")]
+ string imageId;
+
+ public string ImageId {
+ get {
+ return imageId;
+ }
+ }
+ }
+}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs
index 41a7c7c4ea..c277db2a9b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs
@@ -573,7 +573,7 @@ namespace MonoDevelop.Ide.Projects
if (wizardProvider.HasWizard)
wizardProvider.BeforeProjectIsCreated ();
- if (!CreateProject ())
+ if (!await CreateProject ())
return;
Solution parentSolution = null;
@@ -679,7 +679,7 @@ namespace MonoDevelop.Ide.Projects
.ToList ();
}
- bool CreateProject ()
+ async Task<bool> CreateProject ()
{
if (!projectConfiguration.IsValid ()) {
MessageService.ShowError (projectConfiguration.GetErrorMessage ());
@@ -724,7 +724,7 @@ namespace MonoDevelop.Ide.Projects
DisposeExistingNewItems ();
try {
- result = IdeApp.Services.TemplatingService.ProcessTemplate (template, projectConfiguration, ParentFolder);
+ result = await IdeApp.Services.TemplatingService.ProcessTemplate (template, projectConfiguration, ParentFolder);
if (!result.WorkspaceItems.Any ())
return false;
} catch (UserException ex) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/IProjectTemplatingProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/IProjectTemplatingProvider.cs
index 79c81bbb0c..52fae3978e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/IProjectTemplatingProvider.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/IProjectTemplatingProvider.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System.Collections.Generic;
+using System.Threading.Tasks;
using MonoDevelop.Ide.Projects;
using MonoDevelop.Projects;
@@ -35,7 +36,7 @@ namespace MonoDevelop.Ide.Templates
IEnumerable<SolutionTemplate> GetTemplates ();
bool CanProcessTemplate (SolutionTemplate template);
- ProcessedTemplateResult ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder);
+ Task<ProcessedTemplateResult> ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder);
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProcessedTemplateResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProcessedTemplateResult.cs
new file mode 100644
index 0000000000..c977bcf200
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProcessedTemplateResult.cs
@@ -0,0 +1,67 @@
+//
+// MicrosoftTemplateEngineProcessedTemplateResult.cs
+//
+// Author:
+// David Karlaš <david.karlas@xamarin.com>
+//
+// Copyright (c) 2017 Xamarin, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using Microsoft.TemplateEngine.Edge.Template;
+using MonoDevelop.Projects;
+
+namespace MonoDevelop.Ide.Templates
+{
+ class MicrosoftTemplateEngineProcessedTemplateResult : ProcessedTemplateResult
+ {
+ readonly IWorkspaceFileObject[] workspaceItems;
+
+ public MicrosoftTemplateEngineProcessedTemplateResult (IWorkspaceFileObject[] workspaceItems, string solutionFileName, string projectBasePath)
+ {
+ this.workspaceItems = workspaceItems;
+ this.SolutionFileName = solutionFileName;
+ this.ProjectBasePath = projectBasePath;
+ }
+
+ public override IEnumerable<string> Actions {
+ get {
+ yield break;
+ }
+ }
+
+ public override IList<PackageReferencesForCreatedProject> PackageReferences {
+ get {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public override IEnumerable<IWorkspaceFileObject> WorkspaceItems {
+ get {
+ return workspaceItems;
+ }
+ }
+
+ public override bool HasPackages ()
+ {
+ return false;
+ }
+ }
+}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
new file mode 100644
index 0000000000..c037719fa2
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
@@ -0,0 +1,225 @@
+//
+// MicrosoftTemplateEngineProjectTemplatingProvider.cs
+//
+// Author:
+// David Karlaš <david.karlas@xamarin.com>
+//
+// Copyright (c) 2017 Xamarin, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using Microsoft.TemplateEngine.Edge.Settings;
+using Microsoft.TemplateEngine.Edge.Template;
+using Microsoft.TemplateEngine.Utils;
+using MonoDevelop.Ide.Projects;
+using MonoDevelop.Projects;
+using System.Linq;
+using Microsoft.TemplateEngine.Orchestrator.RunnableProjects;
+using MonoDevelop.Core;
+using Microsoft.TemplateEngine.Edge;
+using System.IO;
+using Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Config;
+using Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros;
+using System.Threading.Tasks;
+using Mono.Addins;
+using MonoDevelop.Ide.Codons;
+using Microsoft.TemplateEngine.Abstractions;
+
+namespace MonoDevelop.Ide.Templates
+{
+ class MicrosoftTemplateEngineProjectTemplatingProvider : IProjectTemplatingProvider
+ {
+ public bool CanProcessTemplate (SolutionTemplate template)
+ {
+ return template is MicrosoftTemplateEngineSolutionTemplate;
+ }
+
+ static EngineEnvironmentSettings environmentSettings = new EngineEnvironmentSettings (new MyTemplateEngineHost (), (env) => new SettingsLoader (env));
+ static TemplateCreator templateCreator = new TemplateCreator (environmentSettings);
+
+ static bool dontUpdateCache = true;
+
+ static MicrosoftTemplateEngineProjectTemplatingProvider ()
+ {
+ AddinManager.AddExtensionNodeHandler ("/MonoDevelop/Ide/Templates", OnExtensionChanged);
+ dontUpdateCache = false;
+ UpdateCache ();
+ }
+
+ static List<TemplateExtensionNode> TemplatesNodes = new List<TemplateExtensionNode> ();
+ static List<MicrosoftTemplateEngineSolutionTemplate> templates = new List<MicrosoftTemplateEngineSolutionTemplate> ();
+
+ static void UpdateCache ()
+ {
+ if (dontUpdateCache)//Avoid updating cache while scan paths are added during registration
+ return;
+ var paths = new Paths (environmentSettings);
+
+ //TODO: Uncomment this IF, but also add logic to invalidate/check if new templates were added from newly installed AddOns...
+ //if (!paths.Exists (paths.User.BaseDir) || !paths.Exists (paths.User.FirstRunCookie)) {
+ var _templateCache = new TemplateCache (environmentSettings);
+ foreach (var scanPath in TemplatesNodes.Select (t => t.ScanPath).Distinct ()) {
+ _templateCache.Scan (scanPath);
+ }
+ _templateCache.WriteTemplateCaches ();
+ paths.WriteAllText (paths.User.FirstRunCookie, "");
+ //}
+ var templateInfos = templateCreator.List (false, (t, s) => new MatchInfo ()).ToDictionary (m => m.Info.Identity, m => m.Info);
+ var newTemplates = new List<MicrosoftTemplateEngineSolutionTemplate> ();
+ foreach (var template in TemplatesNodes) {
+ ITemplateInfo templateInfo;
+ if (!templateInfos.TryGetValue (template.Id, out templateInfo)) {
+ LoggingService.LogWarning ("Template {0} not found.", template.Id);
+ continue;
+ }
+ newTemplates.Add (new MicrosoftTemplateEngineSolutionTemplate (template, templateInfo));
+ }
+ templates = newTemplates;
+ }
+
+ static void OnExtensionChanged (object s, ExtensionNodeEventArgs args)
+ {
+ if (args.Change == ExtensionChange.Add) {
+ var codon = (TemplateExtensionNode)args.ExtensionNode;
+ try {
+ TemplatesNodes.Add (codon);
+ } catch (Exception e) {
+ string extId = null, addinId = null;
+ if (codon != null) {
+ if (codon.HasId)
+ extId = codon.Id;
+ if (codon.Addin != null)
+ addinId = codon.Addin.Id;
+ }
+ LoggingService.LogError ("Error loading template id {0} in addin {1}:\n{2}",
+ extId ?? "(null)", addinId ?? "(null)", e.ToString ());
+ }
+ } else {
+ foreach (var pt in TemplatesNodes) {
+ var codon = (TemplateExtensionNode)args.ExtensionNode;
+ if (pt.Id == codon.Id) {
+ TemplatesNodes.Remove (pt);
+ break;
+ }
+ }
+ }
+ UpdateCache ();
+ }
+
+ public IEnumerable<SolutionTemplate> GetTemplates ()
+ {
+ return templates;
+ }
+
+ static MonoDevelop.Core.Instrumentation.Counter TemplateCounter = MonoDevelop.Core.Instrumentation.InstrumentationService.CreateCounter ("Template Instantiated", "Project Model", id: "Core.Template.Instantiated");
+
+ public async Task<ProcessedTemplateResult> ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
+ {
+ var templateInfo = ((MicrosoftTemplateEngineSolutionTemplate)template).templateInfo;
+ var workspaceItems = new List<IWorkspaceFileObject> ();
+ var result = await templateCreator.InstantiateAsync (
+ templateInfo,
+ config.ProjectName,
+ config.GetValidProjectName (),
+ config.ProjectLocation,
+ new Dictionary<string, string> (),
+ true);
+ if (result.ResultInfo.PrimaryOutputs.Any ()) {
+ foreach (var res in result.ResultInfo.PrimaryOutputs) {
+ var fullPath = Path.Combine (config.ProjectLocation, res.Path);
+ //This happens if some project is excluded by modifiers, e.g. Test project disabled in wizard settings by user
+ if (!File.Exists (fullPath))
+ continue;
+ workspaceItems.Add (await MonoDevelop.Projects.Services.ProjectService.ReadSolutionItem (new Core.ProgressMonitor (), fullPath));
+ }
+ } else {
+ //TODO: Remove this code once https://github.com/dotnet/templating/pull/342 is released in NuGet feed and we bump NuGet version of templating engine
+ foreach (var path in Directory.GetFiles (config.SolutionLocation, "*.*proj", SearchOption.AllDirectories)) {
+ if (path.EndsWith (".csproj", StringComparison.OrdinalIgnoreCase) || path.EndsWith (".fsproj", StringComparison.OrdinalIgnoreCase) || path.EndsWith (".vbproj", StringComparison.OrdinalIgnoreCase))
+ workspaceItems.Add (await MonoDevelop.Projects.Services.ProjectService.ReadSolutionItem (new Core.ProgressMonitor (), path));
+ }
+ }
+
+ var metadata = new Dictionary<string, string> ();
+ metadata ["Id"] = templateInfo.Identity;
+ metadata ["Name"] = templateInfo.Name;
+ metadata ["Language"] = template.Language;
+ metadata ["Platform"] = string.Join(";", templateInfo.Classifications);
+ TemplateCounter.Inc (1, null, metadata);
+
+ if (parentFolder == null) {
+ var solution = new Solution ();
+ solution.SetLocation (config.SolutionLocation, config.SolutionName);
+ foreach (var item in workspaceItems.Cast<SolutionFolderItem> ()) {
+ IConfigurationTarget configurationTarget = item as IConfigurationTarget;
+ if (configurationTarget != null) {
+ foreach (ItemConfiguration configuration in configurationTarget.Configurations) {
+ bool flag = false;
+ foreach (SolutionConfiguration solutionCollection in solution.Configurations) {
+ if (solutionCollection.Id == configuration.Id)
+ flag = true;
+ }
+ if (!flag)
+ solution.AddConfiguration (configuration.Id, true);
+ }
+ }
+ solution.RootFolder.AddItem (item);
+ }
+ return new MicrosoftTemplateEngineProcessedTemplateResult (new [] { solution }, solution.FileName, config.ProjectLocation);
+ } else {
+ return new MicrosoftTemplateEngineProcessedTemplateResult (workspaceItems.ToArray (), parentFolder.ParentSolution.FileName, config.ProjectLocation);
+ }
+ }
+
+ class MyTemplateEngineHost : DefaultTemplateEngineHost
+ {
+ public MyTemplateEngineHost () : base (BrandingService.ApplicationName, BuildInfo.CompatVersion, "en-US", new Dictionary<string, string> { { "dotnet-cli-version", "0" } }, new Dictionary<Guid, Func<Type>>
+ {
+ { new Guid("0C434DF7-E2CB-4DEE-B216-D7C58C8EB4B3"), () => typeof(RunnableProjectGenerator) },
+ { new Guid("3147965A-08E5-4523-B869-02C8E9A8AAA1"), () => typeof(BalancedNestingConfig) },
+ { new Guid("3E8BCBF0-D631-45BA-A12D-FBF1DE03AA38"), () => typeof(ConditionalConfig) },
+ { new Guid("A1E27A4B-9608-47F1-B3B8-F70DF62DC521"), () => typeof(FlagsConfig) },
+ { new Guid("3FAE1942-7257-4247-B44D-2DDE07CB4A4A"), () => typeof(IncludeConfig) },
+ { new Guid("3D33B3BF-F40E-43EB-A14D-F40516F880CD"), () => typeof(RegionConfig) },
+ { new Guid("62DB7F1F-A10E-46F0-953F-A28A03A81CD1"), () => typeof(ReplacementConfig) },
+ { new Guid("370996FE-2943-4AED-B2F6-EC03F0B75B4A"), () => typeof(ConstantMacro) },
+ { new Guid("BB625F71-6404-4550-98AF-B2E546F46C5F"), () => typeof(EvaluateMacro) },
+ { new Guid("10919008-4E13-4FA8-825C-3B4DA855578E"), () => typeof(GuidMacro) },
+ { new Guid("F2B423D7-3C23-4489-816A-41D8D2A98596"), () => typeof(NowMacro) },
+ { new Guid("011E8DC1-8544-4360-9B40-65FD916049B7"), () => typeof(RandomMacro) },
+ { new Guid("8A4D4937-E23F-426D-8398-3BDBD1873ADB"), () => typeof(RegexMacro) },
+ { new Guid("B57D64E0-9B4F-4ABE-9366-711170FD5294"), () => typeof(SwitchMacro) },
+ { new Guid("10919118-4E13-4FA9-825C-3B4DA855578E"), () => typeof(CaseChangeMacro) }
+ }.ToList ())
+ {
+ }
+
+ public override bool TryGetHostParamDefault (string paramName, out string value)
+ {
+ if (paramName == "HostIdentifier") {
+ value = this.HostIdentifier;
+ return true;
+ }
+ value = null;
+ return false;
+ }
+ }
+ }
+}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs
new file mode 100644
index 0000000000..940af76b2d
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs
@@ -0,0 +1,64 @@
+//
+// MicrosoftTemplateEngineSolutionTemplate.cs
+//
+// Author:
+// David Karlaš <david.karlas@xamarin.com>
+//
+// Copyright (c) 2017 Xamarin, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Microsoft.TemplateEngine.Abstractions;
+using Microsoft.TemplateEngine.Edge.Settings;
+using System.Linq;
+using MonoDevelop.Ide.Codons;
+
+namespace MonoDevelop.Ide.Templates
+{
+ class MicrosoftTemplateEngineSolutionTemplate : SolutionTemplate
+ {
+ internal readonly ITemplateInfo templateInfo;
+ //TemplateExtensionNode template;
+
+ internal MicrosoftTemplateEngineSolutionTemplate (TemplateExtensionNode template, ITemplateInfo templateInfo)
+ : base (templateInfo.Identity, templateInfo.Name, template.Icon)
+ {
+ this.templateInfo = templateInfo;
+ Description = templateInfo.Description;
+ Category = template.Category;
+ string language;
+ if (templateInfo.Tags.TryGetValue ("Language", out language))
+ Language = language;
+ else
+ Language = string.Empty;
+ GroupId = templateInfo.GroupIdentity;
+ //TODO: Support all this params
+ //Condition = template.Condition;
+ //ProjectFileExtension = template.FileExtension;
+ //Wizard = template.WizardPath;
+ //SupportedParameters = template.SupportedParameters;
+ //DefaultParameters = template.DefaultParameters;
+ ImageId = template.ImageId;
+ //ImageFile = template.ImageFile;
+ //Visibility = GetVisibility (template.Visibility);
+
+ //HasProjects = (template.SolutionDescriptor.EntryDescriptors.Length > 0);
+ }
+ }
+}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplatingProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplatingProvider.cs
index b47ae8a685..0b917b754f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplatingProvider.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplatingProvider.cs
@@ -32,6 +32,7 @@
using System.Collections.Generic;
using System.Linq;
+using System.Threading.Tasks;
using MonoDevelop.Ide.Projects;
using MonoDevelop.Projects;
using MonoDevelop.Core;
@@ -52,9 +53,9 @@ namespace MonoDevelop.Ide.Templates
return template is DefaultSolutionTemplate;
}
- public ProcessedTemplateResult ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
+ public Task<ProcessedTemplateResult> ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
{
- return ProcessTemplate ((DefaultSolutionTemplate)template, config, parentFolder);
+ return Task.FromResult (ProcessTemplate ((DefaultSolutionTemplate)template, config, parentFolder));
}
ProcessedTemplateResult ProcessTemplate (DefaultSolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplatingService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplatingService.cs
index 575ca442db..75deb3a400 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplatingService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplatingService.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Threading.Tasks;
using Mono.Addins;
using MonoDevelop.Components;
using MonoDevelop.Core;
@@ -137,11 +138,11 @@ namespace MonoDevelop.Ide.Templates
return null;
}
- public ProcessedTemplateResult ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
+ public async Task<ProcessedTemplateResult> ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
{
IProjectTemplatingProvider provider = GetTemplatingProviderForTemplate (template);
if (provider != null) {
- var result = provider.ProcessTemplate (template, config, parentFolder);
+ var result = await provider.ProcessTemplate (template, config, parentFolder);
if (result.WorkspaceItems.Any ())
RecentTemplates.AddTemplate (template);
return result;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
index 579223e10c..21a312a52b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
@@ -144,10 +144,6 @@
<HintPath>..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>False</Private>
</Reference>
- <Reference Include="Newtonsoft.Json">
- <HintPath>..\..\..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
- <Private>False</Private>
- </Reference>
<Reference Include="System.Collections.Immutable">
<HintPath>..\..\..\build\bin\System.Collections.Immutable.dll</HintPath>
</Reference>
@@ -172,6 +168,29 @@
<Reference Include="YamlDotNet">
<HintPath>..\..\..\packages\YamlDotNet.Signed.4.0.1-pre291\lib\net35\YamlDotNet.dll</HintPath>
</Reference>
+ <Reference Include="Microsoft.TemplateEngine.Abstractions">
+ <HintPath>..\..\..\packages\Microsoft.TemplateEngine.Abstractions.1.0.0-beta1-20170208-116\lib\net45\Microsoft.TemplateEngine.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.TemplateEngine.Core.Contracts">
+ <HintPath>..\..\..\packages\Microsoft.TemplateEngine.Core.Contracts.1.0.0-beta1-20170208-116\lib\net45\Microsoft.TemplateEngine.Core.Contracts.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.TemplateEngine.Utils">
+ <HintPath>..\..\..\packages\Microsoft.TemplateEngine.Utils.1.0.0-beta1-20170208-116\lib\net45\Microsoft.TemplateEngine.Utils.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.TemplateEngine.Core">
+ <HintPath>..\..\..\packages\Microsoft.TemplateEngine.Core.1.0.0-beta1-20170208-116\lib\net45\Microsoft.TemplateEngine.Core.dll</HintPath>
+ </Reference>
+ <Reference Include="Newtonsoft.Json">
+ <HintPath>..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="System.IO.Compression" />
+ <Reference Include="Microsoft.TemplateEngine.Edge">
+ <HintPath>..\..\..\packages\Microsoft.TemplateEngine.Edge.1.0.0-beta1-20170208-116\lib\net45\Microsoft.TemplateEngine.Edge.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.TemplateEngine.Orchestrator.RunnableProjects">
+ <HintPath>..\..\..\packages\Microsoft.TemplateEngine.Orchestrator.RunnableProjects.1.0.0-beta1-20170208-116\lib\net45\Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MonoDevelop.Core\MonoDevelop.Core.csproj">
@@ -9226,6 +9245,10 @@
<Compile Include="MonoDevelop.Ide.Editor.Extension\HighlightUrlExtension.cs" />
<Compile Include="MonoDevelop.Ide.CodeCompletion\CompletionTriggerInfo.cs" />
<Compile Include="MonoDevelop.Ide.CodeCompletion\CompletionTriggerReason.cs" />
+ <Compile Include="MonoDevelop.Ide.Templates\MicrosoftTemplateEngineProjectTemplatingProvider.cs" />
+ <Compile Include="MonoDevelop.Ide.Templates\MicrosoftTemplateEngineSolutionTemplate.cs" />
+ <Compile Include="MonoDevelop.Ide.Templates\MicrosoftTemplateEngineProcessedTemplateResult.cs" />
+ <Compile Include="MonoDevelop.Ide.Codons\TemplateExtensionNode.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/core/MonoDevelop.Ide/packages.config b/main/src/core/MonoDevelop.Ide/packages.config
index 6ad8b4b162..c4e86756f4 100644
--- a/main/src/core/MonoDevelop.Ide/packages.config
+++ b/main/src/core/MonoDevelop.Ide/packages.config
@@ -1,6 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
- <package id="Newtonsoft.Json" version="8.0.3" targetFramework="net45" />
+ <package id="Microsoft.TemplateEngine.Abstractions" version="1.0.0-beta1-20170208-116" targetFramework="net45" />
+ <package id="Microsoft.TemplateEngine.Core" version="1.0.0-beta1-20170208-116" targetFramework="net45" />
+ <package id="Microsoft.TemplateEngine.Core.Contracts" version="1.0.0-beta1-20170208-116" targetFramework="net45" />
+ <package id="Microsoft.TemplateEngine.Edge" version="1.0.0-beta1-20170208-116" targetFramework="net45" />
+ <package id="Microsoft.TemplateEngine.Orchestrator.RunnableProjects" version="1.0.0-beta1-20170208-116" targetFramework="net45" />
+ <package id="Microsoft.TemplateEngine.Utils" version="1.0.0-beta1-20170208-116" targetFramework="net45" />
+ <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
+ <package id="System.IO.Compression" version="4.3.0" targetFramework="net45" />
<package id="YamlDotNet.Signed" version="4.0.1-pre291" targetFramework="net45" />
</packages> \ No newline at end of file