[dotnet/templates/tests] Update template code. (#12109)
* Move the templates to a common subdirectory. * Add .NET unit test to verify that all the templates build and that they have no warnings. * Modify the template code to: * Use the UIApplication.Main overload that takes a Type. * Use top-level statements for the Main method to simplify code. * Remove a few unnecessary usings. Partial fix for #12085.
|
@ -1,13 +0,0 @@
|
|||
using UIKit;
|
||||
|
||||
namespace MacCatalystApp1 {
|
||||
public class Application {
|
||||
// This is the main entry point of the application.
|
||||
static void Main (string [] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
using UIKit;
|
||||
|
||||
namespace iOSApp1 {
|
||||
public class Application {
|
||||
// This is the main entry point of the application.
|
||||
static void Main (string [] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
using AppKit;
|
||||
|
||||
namespace macOSApp1 {
|
||||
static class Application {
|
||||
static void Main (string [] args)
|
||||
{
|
||||
NSApplication.Init ();
|
||||
NSApplication.Main (args);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
using UIKit;
|
||||
|
||||
namespace tvOSApp1 {
|
||||
public class Application {
|
||||
// This is the main entry point of the application.
|
||||
static void Main (string [] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
}
|
||||
}
|
До Ширина: | Высота: | Размер: 69 KiB После Ширина: | Высота: | Размер: 69 KiB |
До Ширина: | Высота: | Размер: 6.2 KiB После Ширина: | Высота: | Размер: 6.2 KiB |
До Ширина: | Высота: | Размер: 1.2 KiB После Ширина: | Высота: | Размер: 1.2 KiB |
До Ширина: | Высота: | Размер: 15 KiB После Ширина: | Высота: | Размер: 15 KiB |
До Ширина: | Высота: | Размер: 1.5 KiB После Ширина: | Высота: | Размер: 1.5 KiB |
До Ширина: | Высота: | Размер: 34 KiB После Ширина: | Высота: | Размер: 34 KiB |
До Ширина: | Высота: | Размер: 3.0 KiB После Ширина: | Высота: | Размер: 3.0 KiB |
|
@ -0,0 +1,8 @@
|
|||
using UIKit;
|
||||
|
||||
using MacCatalystApp1;
|
||||
|
||||
// This is the main entry point of the application.
|
||||
// If you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, typeof (AppDelegate));
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
using CoreFoundation;
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
До Ширина: | Высота: | Размер: 69 KiB После Ширина: | Высота: | Размер: 69 KiB |
До Ширина: | Высота: | Размер: 3.7 KiB После Ширина: | Высота: | Размер: 3.7 KiB |
До Ширина: | Высота: | Размер: 4.6 KiB После Ширина: | Высота: | Размер: 4.6 KiB |
До Ширина: | Высота: | Размер: 4.6 KiB После Ширина: | Высота: | Размер: 4.6 KiB |
До Ширина: | Высота: | Размер: 5.1 KiB После Ширина: | Высота: | Размер: 5.1 KiB |
До Ширина: | Высота: | Размер: 1.3 KiB После Ширина: | Высота: | Размер: 1.3 KiB |
До Ширина: | Высота: | Размер: 845 B После Ширина: | Высота: | Размер: 845 B |
До Ширина: | Высота: | Размер: 1.1 KiB После Ширина: | Высота: | Размер: 1.1 KiB |
До Ширина: | Высота: | Размер: 1.7 KiB После Ширина: | Высота: | Размер: 1.7 KiB |
До Ширина: | Высота: | Размер: 2.5 KiB После Ширина: | Высота: | Размер: 2.5 KiB |
До Ширина: | Высота: | Размер: 2.3 KiB После Ширина: | Высота: | Размер: 2.3 KiB |
До Ширина: | Высота: | Размер: 2.4 KiB После Ширина: | Высота: | Размер: 2.4 KiB |
До Ширина: | Высота: | Размер: 2.7 KiB После Ширина: | Высота: | Размер: 2.7 KiB |
|
@ -0,0 +1,8 @@
|
|||
using UIKit;
|
||||
|
||||
using iOSApp1;
|
||||
|
||||
// This is the main entry point of the application.
|
||||
// If you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, typeof (AppDelegate));
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
using System;
|
||||
|
||||
namespace iOSLib1 {
|
||||
public class Class1 {
|
||||
}
|
До Ширина: | Высота: | Размер: 7.9 KiB После Ширина: | Высота: | Размер: 7.9 KiB |
До Ширина: | Высота: | Размер: 20 KiB После Ширина: | Высота: | Размер: 20 KiB |
До Ширина: | Высота: | Размер: 711 B После Ширина: | Высота: | Размер: 711 B |
До Ширина: | Высота: | Размер: 1.4 KiB После Ширина: | Высота: | Размер: 1.4 KiB |
До Ширина: | Высота: | Размер: 20 KiB После Ширина: | Высота: | Размер: 20 KiB |
До Ширина: | Высота: | Размер: 58 KiB После Ширина: | Высота: | Размер: 58 KiB |
До Ширина: | Высота: | Размер: 1.4 KiB После Ширина: | Высота: | Размер: 1.4 KiB |
До Ширина: | Высота: | Размер: 3.3 KiB После Ширина: | Высота: | Размер: 3.3 KiB |
До Ширина: | Высота: | Размер: 58 KiB После Ширина: | Высота: | Размер: 58 KiB |
До Ширина: | Высота: | Размер: 174 KiB После Ширина: | Высота: | Размер: 174 KiB |
|
@ -0,0 +1,7 @@
|
|||
using AppKit;
|
||||
|
||||
using macOSApp1;
|
||||
|
||||
// This is the main entry point of the application.
|
||||
NSApplication.Init ();
|
||||
NSApplication.Main (args);
|
|
@ -0,0 +1,8 @@
|
|||
using UIKit;
|
||||
|
||||
using tvOSApp1;
|
||||
|
||||
// This is the main entry point of the application.
|
||||
// If you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, typeof (AppDelegate));
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
||||
namespace tvOSApp1 {
|
|
@ -3,7 +3,7 @@
|
|||
<PackageId>Microsoft.$(_PlatformName).Templates</PackageId>
|
||||
<PackageType>Template</PackageType>
|
||||
<Description>Templates for $(_PlatformName) platforms</Description>
|
||||
<_packagePath>$(MSBuildThisFileDirectory)..\Microsoft.$(_PlatformName).Templates\</_packagePath>
|
||||
<_packagePath>$(MSBuildThisFileDirectory)..\Templates\Microsoft.$(_PlatformName).Templates\</_packagePath>
|
||||
</PropertyGroup>
|
||||
<Import Project="common.csproj" />
|
||||
</Project>
|
||||
|
|
|
@ -97,6 +97,11 @@ namespace Xamarin.Tests
|
|||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<BuildLogEvent> GetBuildLogWarnings (string path)
|
||||
{
|
||||
return GetBuildMessages (path).Where (v => v.Type == BuildLogEventType.Warning);
|
||||
}
|
||||
|
||||
public static IEnumerable<BuildLogEvent> GetBuildMessages (string path)
|
||||
{
|
||||
var reader = new BinLogReader ();
|
||||
|
|
|
@ -36,6 +36,31 @@ namespace Xamarin.Tests {
|
|||
return rv;
|
||||
}
|
||||
|
||||
public static ExecutionResult AssertNew (string outputDirectory, string template)
|
||||
{
|
||||
Directory.CreateDirectory (outputDirectory);
|
||||
|
||||
var args = new List<string> ();
|
||||
args.Add ("new");
|
||||
args.Add (template);
|
||||
|
||||
var env = new Dictionary<string, string> ();
|
||||
env ["MSBuildSDKsPath"] = null;
|
||||
env ["MSBUILD_EXE_PATH"] = null;
|
||||
var output = new StringBuilder ();
|
||||
var rv = Execution.RunWithStringBuildersAsync (Executable, args, env, output, output, Console.Out, workingDirectory: outputDirectory, timeout: TimeSpan.FromMinutes (10)).Result;
|
||||
if (rv.ExitCode != 0) {
|
||||
Console.WriteLine ($"'{Executable} {StringUtils.FormatArguments (args)}' failed with exit code {rv.ExitCode}.");
|
||||
Console.WriteLine (output);
|
||||
Assert.AreEqual (0, rv.ExitCode, $"Exit code: {Executable} {StringUtils.FormatArguments (args)}");
|
||||
}
|
||||
return new ExecutionResult {
|
||||
StandardOutput = output,
|
||||
StandardError = output,
|
||||
ExitCode = rv.ExitCode,
|
||||
};
|
||||
}
|
||||
|
||||
public static ExecutionResult Execute (string verb, string project, Dictionary<string, string> properties, bool assert_success = true)
|
||||
{
|
||||
if (!File.Exists (project))
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
|
||||
<PackageReference Include="Mono.Cecil" Version="0.11.2" />
|
||||
<PackageReference Include="MSBuild.StructuredLogger" Version="2.1.500" />
|
||||
<PackageReference Include="System.Text.Json" Version="5.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -51,4 +52,7 @@
|
|||
<ItemGroup>
|
||||
<Folder Include="external\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Remove="System.Text.Json" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|