diff --git a/dotnet/HIERARCHY.md b/dotnet/HIERARCHY.md index 9bf9010d3caf..3d63fb7dbcf0 100644 --- a/dotnet/HIERARCHY.md +++ b/dotnet/HIERARCHY.md @@ -62,3 +62,7 @@ Contains reference assemblies. ## Microsoft._platform_.Runtime.[runtimeIdentifier] Contains implementation assemblies and native bits. + +## Microsoft._platform.Templates + +Contains project & item templates for each platform. diff --git a/dotnet/Makefile b/dotnet/Makefile index 14791fc6af99..ac6ea4c1abb8 100644 --- a/dotnet/Makefile +++ b/dotnet/Makefile @@ -5,6 +5,7 @@ include $(TOP)/mk/rules.mk DOTNET_MANIFESTS_PATH=$(DOTNET6_DIR)/sdk-manifests/$(DOTNET6_VERSION_BAND) DOTNET_PACKS_PATH=$(DOTNET6_DIR)/packs +DOTNET_TEMPLATE_PACKS_PATH=$(DOTNET6_DIR)/template-packs TMP_PKG_DIR=_pkg DOTNET_PLATFORMS_UPPERCASE:=$(shell echo $(DOTNET_PLATFORMS) | tr a-z A-Z) @@ -35,10 +36,13 @@ DIRECTORIES += \ $(DOTNET_FEED_DIR) \ $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk) \ $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets) \ + $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Templates) \ $(DOTNET_MANIFESTS_PATH) \ $(DOTNET_PACKS_PATH) \ + $(DOTNET_TEMPLATE_PACKS_PATH) \ $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_PACKS_PATH)/Microsoft.$(platform).Sdk) \ $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_PACKS_PATH)/Microsoft.$(platform).Ref) \ + $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_TEMPLATE_PACKS_PATH)/Microsoft.$(platform).Templates) \ $(TMP_PKG_DIR) \ $(DIRECTORIES): @@ -46,7 +50,7 @@ $(DIRECTORIES): CURRENT_HASH_LONG:=$(shell git log -1 --pretty=%H) -$(DOTNET_DESTDIR)/Microsoft.%: Microsoft.% | $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk $(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets) +$(DOTNET_DESTDIR)/Microsoft.%: Microsoft.% | $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk $(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets $(DOTNET_DESTDIR)/Microsoft.$(platform).Templates) $(Q) $(CP) $< $@ define CopyTargets @@ -150,6 +154,7 @@ endef $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Sdk,$($(platform)_NUGET_VERSION_NO_METADATA),$($(platform)_NUGET_TARGETS)))) $(eval $(call CreateWindowsNuGetTemplate,Microsoft.iOS.Windows.Sdk,$(IOS_WINDOWS_NUGET_VERSION_NO_METADATA),$(IOS_WINDOWS_NUGET_TARGETS))) $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Ref,$($(platform)_NUGET_VERSION_NO_METADATA)))) +$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Templates,$($(platform)_NUGET_VERSION_NO_METADATA)))) $(foreach platform,$(DOTNET_PLATFORMS),$(foreach rid,$(DOTNET_$(platform)_RUNTIME_IDENTIFIERS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Runtime.$(rid),$($(platform)_NUGET_VERSION_NO_METADATA))))) # Copy the nuget from the temporary directory into the final directory @@ -170,11 +175,13 @@ REF_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Ref.$($(1)_NUGET_VERSION_FULL REF_PACKS += $$(REF_PACKS_$(1)) SDK_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Sdk.$($(1)_NUGET_VERSION_FULL).nupkg SDK_PACKS += $$(SDK_PACKS_$(1)) -pack-$(shell echo $(1) | tr A-Z a-z): $$(RUNTIME_PACKS_$(1)) $$(REF_PACKS_$(1)) $$(SDK_PACKS_$(1)) +TEMPLATE_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Templates.$($(1)_NUGET_VERSION_FULL).nupkg +TEMPLATE_PACKS += $$(TEMPLATE_PACKS_$(1)) +pack-$(shell echo $(1) | tr A-Z a-z): $$(RUNTIME_PACKS_$(1)) $$(REF_PACKS_$(1)) $$(SDK_PACKS_$(1)) $$(TEMPLATE_PACKS_$(1)) endef $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),$(eval $(call PacksDefinitions,$(platform)))) -TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) +TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) define InstallWorkload $(DOTNET_MANIFESTS_PATH)/Microsoft.NET.Workload.$1: | $(DOTNET_MANIFESTS_PATH) @@ -186,14 +193,18 @@ $(DOTNET_PACKS_PATH)/Microsoft.$1.Sdk/$2: | $(DOTNET_PACKS_PATH)/Microsoft.$1.Sd $(DOTNET_PACKS_PATH)/Microsoft.$1.Ref/$2: | $(DOTNET_PACKS_PATH)/Microsoft.$1.Ref $$(Q_LN) ln -Fhs $$(abspath $(DOTNET_DESTDIR)/Microsoft.$1.Ref) $$(abspath $$@) +$(DOTNET_TEMPLATE_PACKS_PATH)/Microsoft.$1.Templates.$(2).nupkg: $(TEMPLATE_PACKS_$(shell echo $(1) | tr a-z A-Z)) | $(DOTNET_TEMPLATE_PACKS_PATH) + $$(Q) $$(CP) $$< $$@ + WORKLOAD_TARGETS += \ + $(DOTNET_TEMPLATE_PACKS_PATH)/Microsoft.$1.Templates.$(2).nupkg \ $(DOTNET_MANIFESTS_PATH)/Microsoft.NET.Workload.$1 \ $(DOTNET_PACKS_PATH)/Microsoft.$1.Sdk/$2 \ $(DOTNET_PACKS_PATH)/Microsoft.$1.Ref/$2 endef $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call InstallWorkload,$(platform),$($(platform)_NUGET_VERSION_NO_METADATA)))) -# We create three packages: one for the workload, one for the sdk package, and one for the ref package, +# We create four packages: one for the workload, one for the sdk package, one for the ref package, and one for templates # and then bundle them into a single pkg for distribution (named Microsoft..Bundle..pkg). # This way we can create and publish separate updates for each workload/sdk/ref package later if we want to. define CreatePackage @@ -224,8 +235,17 @@ $(TMP_PKG_DIR)/Microsoft.$1.Ref.$2.pkg: $(SDK_PACK_$(4)) | $(TMP_PKG_DIR) $$(Q_GEN) pkgbuild --quiet --version '$2' --root tmpdir/Microsoft.$1.Ref.$2 --component-plist PackageInfo.plist --install-location / --identifier com.microsoft.net.$3.ref.pkg $$@.tmp $$(Q) mv $$@.tmp $$@ +# The templates package +$(TMP_PKG_DIR)/Microsoft.$1.Templates.$2.pkg: $(TEMPLATE_PACK_$(4)) | $(TMP_PKG_DIR) + $$(Q) rm -f $$@ + $$(Q) rm -rf tmpdir/Microsoft.$1.Templates.$2/ + $$(Q) mkdir -p tmpdir/Microsoft.$1.Templates.$2/usr/local/share/dotnet/template-packs/ + $$(Q) $$(CP) $(TEMPLATE_PACKS_$(4)) tmpdir/Microsoft.$1.Templates.$2/usr/local/share/dotnet/template-packs/ + $$(Q_GEN) pkgbuild --quiet --version '$2' --root tmpdir/Microsoft.$1.Templates.$2 --component-plist PackageInfo.plist --install-location / --identifier com.microsoft.net.$3.template.pkg $$@.tmp + $$(Q) mv $$@.tmp $$@ + # The final bundle package for distribution -$(TMP_PKG_DIR)/Microsoft.$1.Bundle.$2.pkg: $(TMP_PKG_DIR)/Microsoft.$1.Workload.$2.pkg $(TMP_PKG_DIR)/Microsoft.$1.Sdk.$2.pkg $(TMP_PKG_DIR)/Microsoft.$1.Ref.$2.pkg +$(TMP_PKG_DIR)/Microsoft.$1.Bundle.$2.pkg: $(TMP_PKG_DIR)/Microsoft.$1.Workload.$2.pkg $(TMP_PKG_DIR)/Microsoft.$1.Sdk.$2.pkg $(TMP_PKG_DIR)/Microsoft.$1.Ref.$2.pkg $(TMP_PKG_DIR)/Microsoft.$1.Templates.$2.pkg $$(Q) rm -f $$@ $$(Q_GEN) productbuild \ --quiet \ @@ -234,6 +254,7 @@ $(TMP_PKG_DIR)/Microsoft.$1.Bundle.$2.pkg: $(TMP_PKG_DIR)/Microsoft.$1.Workload. --package $(TMP_PKG_DIR)/Microsoft.$1.Workload.$2.pkg \ --package $(TMP_PKG_DIR)/Microsoft.$1.Sdk.$2.pkg \ --package $(TMP_PKG_DIR)/Microsoft.$1.Ref.$2.pkg \ + --package $(TMP_PKG_DIR)/Microsoft.$1.Templates.$2.pkg \ $$@.tmp $$(Q) mv $$@.tmp $$@ @@ -248,6 +269,7 @@ $(TMP_PKG_DIR)/Microsoft.$1.Bundle.$2.zip: $($(1)_NUGET_TARGETS) $(WORKLOAD_TARG $$(Q) mkdir -p $$@.tmpdir/dotnet/sdk-manifests/$(DOTNET6_VERSION_BAND)/ $$(Q) mkdir -p $$@.tmpdir/dotnet/packs/Microsoft.$1.Sdk $$(Q) mkdir -p $$@.tmpdir/dotnet/packs/Microsoft.$1.Ref + $$(Q) mkdir -p $$@.tmpdir/dotnet/template-packs $$(Q) $(CP) -r Microsoft.NET.Workload.$1 $$@.tmpdir/dotnet/sdk-manifests/$(DOTNET6_VERSION_BAND)/ $$(Q) $(CP) -r $(DOTNET_DESTDIR)/Microsoft.$1.Sdk $$@.tmpdir/dotnet/packs/Microsoft.$1.Sdk/$2 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/Microsoft.$1.Ref $$@.tmpdir/dotnet/packs/Microsoft.$1.Ref/$2 @@ -260,16 +282,18 @@ endef $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreatePackage,$(platform),$($(platform)_NUGET_VERSION_NO_METADATA),$(shell echo $(platform) | tr A-Z a-z),$(shell echo $(platform) | tr a-z A-Z)))) define CreateWindowsBundle -$(TMP_PKG_DIR)/Microsoft.$1.Windows.Bundle.$2.zip: $($(1)_NUGET_TARGETS) $($(1)_WINDOWS_NUGET_TARGETS) $(WORKLOAD_TARGETS) Makefile $(REF_PACK_$(4)) $(SDK_PACK_$(4)) $(SDK_PACK_$(4)_WINDOWS) | $(TMP_PKG_DIR) +$(TMP_PKG_DIR)/Microsoft.$1.Windows.Bundle.$2.zip: $($(1)_NUGET_TARGETS) $($(1)_WINDOWS_NUGET_TARGETS) $(WORKLOAD_TARGETS) Makefile $(REF_PACK_$(4)) $(SDK_PACK_$(4)) $(SDK_PACK_$(4)_WINDOWS) $(TEMPLATE_PACKS_$(4)) | $(TMP_PKG_DIR) $$(Q) rm -rf $$@ $$@.tmpdir $$@.tmp $$(Q) mkdir -p $$@.tmpdir/dotnet/sdk-manifests/$(DOTNET6_VERSION_BAND)/ $$(Q) mkdir -p $$@.tmpdir/dotnet/packs/Microsoft.$1.Sdk $$(Q) mkdir -p $$@.tmpdir/dotnet/packs/Microsoft.$1.Windows.Sdk $$(Q) mkdir -p $$@.tmpdir/dotnet/packs/Microsoft.$1.Ref + $$(Q) mkdir -p $$@.tmpdir/dotnet/template-packs $$(Q) $(CP) -r Microsoft.NET.Workload.$1 $$@.tmpdir/dotnet/sdk-manifests/$(DOTNET6_VERSION_BAND)/ $$(Q) $(CP) -r $(DOTNET_DESTDIR)/Microsoft.$1.Sdk $$@.tmpdir/dotnet/packs/Microsoft.$1.Sdk/$2 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/Microsoft.$1.Windows.Sdk $$@.tmpdir/dotnet/packs/Microsoft.$1.Windows.Sdk/$2 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/Microsoft.$1.Ref $$@.tmpdir/dotnet/packs/Microsoft.$1.Ref/$2 + $$(Q) $(CP) $(TEMPLATE_PACKS_$(4)) $$@.tmpdir/dotnet/template-packs/ $$(Q_GEN) cd $$@.tmpdir && zip -9rq $$(abspath $$@.tmp) . $$(Q) mv $$@.tmp $$@ $$(Q) echo Created $$@ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/.template.config/template.json b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/.template.config/template.json new file mode 100644 index 000000000000..bc49b0b6ac09 --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/.template.config/template.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft", + "classifications": [ "macOS", "Catalyst" ], + "identity": "Microsoft.MacCatalyst.MacCatalystApp", + "name": "MacCatalyst Application", + "description": "A project for creating an MacCatalyst application", + "shortName": "maccatalyst", + "tags": { + "language": "C#", + "type": "project" + }, + "sourceName": "MacCatalystApp1", + "preferNameDirectory": true, + "primaryOutputs": [ + { "path": "MacCatalystApp1.csproj" } + ], + "symbols": { + "bundleId": { + "type": "parameter", + "description": "Overrides CFBundleIdentifier in the Info.plist", + "datatype": "string", + "replaces": "com.companyname.MacCatalystApp1" + }, + "minOSVersion": { + "type": "parameter", + "description": "Overrides LSMinimumSystemVersion in the Info.plist", + "replaces": "minOSVersion", + "datatype": "string", + "defaultValue": "10.15.1" + } + }, + "defaultName": "MacCatalystApp1" +} \ No newline at end of file diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/AppDelegate.cs b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/AppDelegate.cs new file mode 100644 index 000000000000..da3e5a2884cb --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/AppDelegate.cs @@ -0,0 +1,32 @@ +using Foundation; +using UIKit; + +namespace MacCatalystApp1 { + [Register ("AppDelegate")] + public class AppDelegate : UIApplicationDelegate { + public override UIWindow Window { + get; + set; + } + + public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) + { + // create a new window instance based on the screen size + Window = new UIWindow (UIScreen.MainScreen.Bounds); + + // create a UIViewController with a single UILabel + var vc = new UIViewController (); + vc.View.AddSubview (new UILabel (Window.Frame) { + BackgroundColor = UIColor.White, + TextAlignment = UITextAlignment.Center, + Text = "Hello, Catalyst!" + }); + Window.RootViewController = vc; + + // make the window visible + Window.MakeKeyAndVisible (); + + return true; + } + } +} diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Contents.json b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000000..98f4d035c84d --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,117 @@ +{ + "images": [ + { + "scale": "2x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon40.png" + }, + { + "scale": "3x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon60.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon58.png" + }, + { + "scale": "3x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon87.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon80.png" + }, + { + "scale": "3x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "2x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "3x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon180.png" + }, + { + "scale": "1x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon20.png" + }, + { + "scale": "2x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "1x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon29.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon58.png" + }, + { + "scale": "1x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon80.png" + }, + { + "scale": "1x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon76.png" + }, + { + "scale": "2x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon152.png" + }, + { + "scale": "2x", + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "Icon167.png" + }, + { + "scale": "1x", + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "Icon1024.png" + } + ], + "properties": {}, + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon1024.png new file mode 100644 index 000000000000..9174c989a9c8 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon120.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon120.png new file mode 100644 index 000000000000..9c60a1761dbf Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon120.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon152.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon152.png new file mode 100644 index 000000000000..448d6efb577d Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon152.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon167.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon167.png new file mode 100644 index 000000000000..8524768f8d76 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon167.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon180.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon180.png new file mode 100644 index 000000000000..60a64703c0f1 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon180.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon20.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon20.png new file mode 100644 index 000000000000..45268a641c5c Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon20.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon29.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon29.png new file mode 100644 index 000000000000..6a6c77a8b4c4 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon29.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon40.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon40.png new file mode 100644 index 000000000000..cc7edcf5cb47 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon40.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon58.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon58.png new file mode 100644 index 000000000000..1ad04f004b63 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon58.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon60.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon60.png new file mode 100644 index 000000000000..2dd52620a8f1 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon60.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon76.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon76.png new file mode 100644 index 000000000000..b058cae2f440 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon76.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon80.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon80.png new file mode 100644 index 000000000000..02e47a261154 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon80.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon87.png b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon87.png new file mode 100644 index 000000000000..4954a4bd33f6 Binary files /dev/null and b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Assets.xcassets/AppIcon.appiconset/Icon87.png differ diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Entitlements.plist b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Entitlements.plist new file mode 100644 index 000000000000..36a87067067f --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Info.plist b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Info.plist new file mode 100644 index 000000000000..37ebfbbdc9d7 --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDisplayName + MacCatalystApp1 + CFBundleIdentifier + com.companyname.MacCatalystApp1 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + minOSVersion + UIDeviceFamily + + 2 + + UILaunchStoryboardName + LaunchScreen + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + \ No newline at end of file diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/LaunchScreen.storyboard b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/LaunchScreen.storyboard new file mode 100644 index 000000000000..2296c6b7fdb1 --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/LaunchScreen.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/MacCatalystApp1.csproj b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/MacCatalystApp1.csproj new file mode 100644 index 000000000000..c342782486da --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/MacCatalystApp1.csproj @@ -0,0 +1,8 @@ + + + net6.0-maccatalyst + maccatalyst-x64 + MacCatalystApp1 + Exe + + \ No newline at end of file diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Main.cs b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Main.cs new file mode 100644 index 000000000000..a623672341c0 --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Main.cs @@ -0,0 +1,13 @@ +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"); + } + } +} diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Resources/LaunchScreen.xib b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Resources/LaunchScreen.xib new file mode 100644 index 000000000000..81902017424a --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/Resources/LaunchScreen.xib @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/SceneDelegate.cs b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/SceneDelegate.cs new file mode 100644 index 000000000000..281ebac9e281 --- /dev/null +++ b/dotnet/Microsoft.MacCatalyst.Templates/maccatalyst/SceneDelegate.cs @@ -0,0 +1,58 @@ +using System; +using Foundation; +using UIKit; + +namespace MacCatalystApp1 { + [Register ("SceneDelegate")] + public class SceneDelegate : UIResponder, IUIWindowSceneDelegate { + + [Export ("window")] + public UIWindow Window { get; set; } + + [Export ("scene:willConnectToSession:options:")] + public void WillConnect (UIScene scene, UISceneSession session, UISceneConnectionOptions connectionOptions) + { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see UIApplicationDelegate `GetConfiguration` instead). + } + + [Export ("sceneDidDisconnect:")] + public void DidDisconnect (UIScene scene) + { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see UIApplicationDelegate `DidDiscardSceneSessions` instead). + } + + [Export ("sceneDidBecomeActive:")] + public void DidBecomeActive (UIScene scene) + { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + [Export ("sceneWillResignActive:")] + public void WillResignActive (UIScene scene) + { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + [Export ("sceneWillEnterForeground:")] + public void WillEnterForeground (UIScene scene) + { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + [Export ("sceneDidEnterBackground:")] + public void DidEnterBackground (UIScene scene) + { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + } +} diff --git a/dotnet/Microsoft.iOS.Templates/ios-controller/.template.config/template.json b/dotnet/Microsoft.iOS.Templates/ios-controller/.template.config/template.json new file mode 100644 index 000000000000..6e67c604e759 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios-controller/.template.config/template.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft", + "classifications": [ "iOS" ], + "name": "iOS Controller template", + "description": "An iOS Controller class", + "tags": { + "language": "C#", + "type": "item" + }, + "identity": "Microsoft.iOS.Controller", + "shortName": "ios-controller", + "sourceName": "Controller1", + "primaryOutputs": [ + { "path": "Controller1.cs" } + ], + "defaultName": "Controller1", + "symbols": { + "namespace": { + "description": "namespace for the generated code", + "replaces": "iOSApp1", + "type": "parameter" + } + } + } \ No newline at end of file diff --git a/dotnet/Microsoft.iOS.Templates/ios-controller/Controller1.cs b/dotnet/Microsoft.iOS.Templates/ios-controller/Controller1.cs new file mode 100644 index 000000000000..290174e75fe7 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios-controller/Controller1.cs @@ -0,0 +1,19 @@ +using CoreFoundation; +using Foundation; +using UIKit; + +namespace iOSApp1 { + [Register ("Controller1")] + public class Controller1 : UIViewController { + public override void ViewDidLoad () + { + View = new UIView { + BackgroundColor = UIColor.Red, + }; + + base.ViewDidLoad (); + + // Perform any additional setup after loading the view + } + } +} diff --git a/dotnet/Microsoft.iOS.Templates/ios/.template.config/template.json b/dotnet/Microsoft.iOS.Templates/ios/.template.config/template.json new file mode 100644 index 000000000000..a8f088c2f4b3 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/.template.config/template.json @@ -0,0 +1,53 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft", + "classifications": [ "iOS" ], + "identity": "Microsoft.iOS.iOSApp", + "name": "iOS Application", + "description": "A project for creating an iOS application", + "shortName": "ios", + "tags": { + "language": "C#", + "type": "project" + }, + "sourceName": "iOSApp1", + "preferNameDirectory": true, + "primaryOutputs": [ + { "path": "iOSApp1.csproj" } + ], + "symbols": { + "bundleId": { + "type": "parameter", + "description": "Overrides CFBundleIdentifier in the Info.plist", + "datatype": "string", + "replaces": "com.companyname.iOSApp1" + }, + "minOSVersion": { + "type": "parameter", + "description": "Overrides MinimumOSVersion in the Info.plist", + "replaces": "minOSVersion", + "datatype": "string", + "defaultValue": "11.2" + }, + "deviceFamily": { + "type": "parameter", + "datatype": "choice", + "defaultValue": "universal", + "choices": [ + { + "choice": "universal", + "description": "Support both iPhone and iPad devices" + }, + { + "choice": "iphone", + "description": "Support only iPhone devices" + }, + { + "choice": "ipad", + "description": "Support only iPad devices" + } + ] + } + }, + "defaultName": "iOSApp1" + } \ No newline at end of file diff --git a/dotnet/Microsoft.iOS.Templates/ios/AppDelegate.cs b/dotnet/Microsoft.iOS.Templates/ios/AppDelegate.cs new file mode 100644 index 000000000000..ab252828d3b6 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/AppDelegate.cs @@ -0,0 +1,32 @@ +using Foundation; +using UIKit; + +namespace iOSApp1 { + [Register ("AppDelegate")] + public class AppDelegate : UIApplicationDelegate { + public override UIWindow Window { + get; + set; + } + + public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) + { + // create a new window instance based on the screen size + Window = new UIWindow (UIScreen.MainScreen.Bounds); + + // create a UIViewController with a single UILabel + var vc = new UIViewController (); + vc.View.AddSubview (new UILabel (Window.Frame) { + BackgroundColor = UIColor.White, + TextAlignment = UITextAlignment.Center, + Text = "Hello, iOS!" + }); + Window.RootViewController = vc; + + // make the window visible + Window.MakeKeyAndVisible (); + + return true; + } + } +} diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Contents.json b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000000..98f4d035c84d --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,117 @@ +{ + "images": [ + { + "scale": "2x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon40.png" + }, + { + "scale": "3x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon60.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon58.png" + }, + { + "scale": "3x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon87.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon80.png" + }, + { + "scale": "3x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "2x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "3x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon180.png" + }, + { + "scale": "1x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon20.png" + }, + { + "scale": "2x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "1x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon29.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon58.png" + }, + { + "scale": "1x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon80.png" + }, + { + "scale": "1x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon76.png" + }, + { + "scale": "2x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon152.png" + }, + { + "scale": "2x", + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "Icon167.png" + }, + { + "scale": "1x", + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "Icon1024.png" + } + ], + "properties": {}, + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon1024.png new file mode 100644 index 000000000000..9174c989a9c8 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon120.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon120.png new file mode 100644 index 000000000000..9c60a1761dbf Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon120.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon152.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon152.png new file mode 100644 index 000000000000..448d6efb577d Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon152.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon167.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon167.png new file mode 100644 index 000000000000..8524768f8d76 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon167.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon180.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon180.png new file mode 100644 index 000000000000..60a64703c0f1 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon180.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon20.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon20.png new file mode 100644 index 000000000000..45268a641c5c Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon20.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon29.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon29.png new file mode 100644 index 000000000000..6a6c77a8b4c4 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon29.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon40.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon40.png new file mode 100644 index 000000000000..cc7edcf5cb47 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon40.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon58.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon58.png new file mode 100644 index 000000000000..1ad04f004b63 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon58.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon60.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon60.png new file mode 100644 index 000000000000..2dd52620a8f1 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon60.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon76.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon76.png new file mode 100644 index 000000000000..b058cae2f440 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon76.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon80.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon80.png new file mode 100644 index 000000000000..02e47a261154 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon80.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon87.png b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon87.png new file mode 100644 index 000000000000..4954a4bd33f6 Binary files /dev/null and b/dotnet/Microsoft.iOS.Templates/ios/Assets.xcassets/AppIcon.appiconset/Icon87.png differ diff --git a/dotnet/Microsoft.iOS.Templates/ios/Entitlements.plist b/dotnet/Microsoft.iOS.Templates/ios/Entitlements.plist new file mode 100644 index 000000000000..36a87067067f --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/dotnet/Microsoft.iOS.Templates/ios/Info.plist b/dotnet/Microsoft.iOS.Templates/ios/Info.plist new file mode 100644 index 000000000000..04424070b233 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/Info.plist @@ -0,0 +1,48 @@ + + + + + CFBundleDisplayName + iOSApp1 + CFBundleIdentifier + com.companyname.iOSApp1 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + MinimumOSVersion + minOSVersion + UIDeviceFamily + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/dotnet/Microsoft.iOS.Templates/ios/LaunchScreen.storyboard b/dotnet/Microsoft.iOS.Templates/ios/LaunchScreen.storyboard new file mode 100644 index 000000000000..2296c6b7fdb1 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/LaunchScreen.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dotnet/Microsoft.iOS.Templates/ios/Main.cs b/dotnet/Microsoft.iOS.Templates/ios/Main.cs new file mode 100644 index 000000000000..aebf95d55d65 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/Main.cs @@ -0,0 +1,13 @@ +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"); + } + } +} diff --git a/dotnet/Microsoft.iOS.Templates/ios/Resources/LaunchScreen.xib b/dotnet/Microsoft.iOS.Templates/ios/Resources/LaunchScreen.xib new file mode 100644 index 000000000000..81902017424a --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/Resources/LaunchScreen.xib @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/Microsoft.iOS.Templates/ios/SceneDelegate.cs b/dotnet/Microsoft.iOS.Templates/ios/SceneDelegate.cs new file mode 100644 index 000000000000..9d4cb618022b --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/SceneDelegate.cs @@ -0,0 +1,58 @@ +using System; +using Foundation; +using UIKit; + +namespace iOSApp1 { + [Register ("SceneDelegate")] + public class SceneDelegate : UIResponder, IUIWindowSceneDelegate { + + [Export ("window")] + public UIWindow Window { get; set; } + + [Export ("scene:willConnectToSession:options:")] + public void WillConnect (UIScene scene, UISceneSession session, UISceneConnectionOptions connectionOptions) + { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see UIApplicationDelegate `GetConfiguration` instead). + } + + [Export ("sceneDidDisconnect:")] + public void DidDisconnect (UIScene scene) + { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see UIApplicationDelegate `DidDiscardSceneSessions` instead). + } + + [Export ("sceneDidBecomeActive:")] + public void DidBecomeActive (UIScene scene) + { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + [Export ("sceneWillResignActive:")] + public void WillResignActive (UIScene scene) + { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + [Export ("sceneWillEnterForeground:")] + public void WillEnterForeground (UIScene scene) + { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + [Export ("sceneDidEnterBackground:")] + public void DidEnterBackground (UIScene scene) + { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + } +} diff --git a/dotnet/Microsoft.iOS.Templates/ios/iOSApp1.csproj b/dotnet/Microsoft.iOS.Templates/ios/iOSApp1.csproj new file mode 100644 index 000000000000..644e28e7ca2d --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ios/iOSApp1.csproj @@ -0,0 +1,7 @@ + + + net6.0-ios + iOSApp1 + Exe + + \ No newline at end of file diff --git a/dotnet/Microsoft.iOS.Templates/ioslib/.template.config/template.json b/dotnet/Microsoft.iOS.Templates/ioslib/.template.config/template.json new file mode 100644 index 000000000000..79b4464dccc2 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ioslib/.template.config/template.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft", + "classifications": [ "iOS" ], + "identity": "Microsoft.iOS.iOSLib", + "name": "iOS Class library", + "description": "A project for creating an iOS class library", + "shortName": "ioslib", + "tags": { + "language": "C#", + "type": "project" + }, + "sourceName": "iOSLib1", + "preferNameDirectory": true, + "primaryOutputs": [ + { "path": "iOSLib1.csproj" } + ], + "defaultName": "iOSLib1" +} \ No newline at end of file diff --git a/dotnet/Microsoft.iOS.Templates/ioslib/Class1.cs b/dotnet/Microsoft.iOS.Templates/ioslib/Class1.cs new file mode 100644 index 000000000000..28d215cc11ad --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ioslib/Class1.cs @@ -0,0 +1,6 @@ +using System; + +namespace iOSLib1 { + public class Class1 { + } +} diff --git a/dotnet/Microsoft.iOS.Templates/ioslib/iOSLib1.csproj b/dotnet/Microsoft.iOS.Templates/ioslib/iOSLib1.csproj new file mode 100644 index 000000000000..5d5fb2d3ed88 --- /dev/null +++ b/dotnet/Microsoft.iOS.Templates/ioslib/iOSLib1.csproj @@ -0,0 +1,6 @@ + + + net6.0-ios + iOSLib1 + + \ No newline at end of file diff --git a/dotnet/Microsoft.macOS.Templates/macos/.template.config/template.json b/dotnet/Microsoft.macOS.Templates/macos/.template.config/template.json new file mode 100644 index 000000000000..59685fd6172e --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/.template.config/template.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft", + "classifications": [ "macOS" ], + "identity": "Microsoft.macOS.macOSApp", + "name": "macOS Application", + "description": "A project for creating an macOS application", + "shortName": "macos", + "tags": { + "language": "C#", + "type": "project" + }, + "sourceName": "macOSApp1", + "preferNameDirectory": true, + "primaryOutputs": [ + { "path": "macOSApp1.csproj" } + ], + "symbols": { + "bundleId": { + "type": "parameter", + "description": "Overrides CFBundleIdentifier in the Info.plist", + "datatype": "string", + "replaces": "com.companyname.macOSApp1" + }, + "minOSVersion": { + "type": "parameter", + "description": "Overrides LSMinimumSystemVersion in the Info.plist", + "replaces": "minOSVersion", + "datatype": "string", + "defaultValue": "10.14" + } + }, + "defaultName": "macOSApp1" + } \ No newline at end of file diff --git a/dotnet/Microsoft.macOS.Templates/macos/AppDelegate.cs b/dotnet/Microsoft.macOS.Templates/macos/AppDelegate.cs new file mode 100644 index 000000000000..703fba4507f2 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/AppDelegate.cs @@ -0,0 +1,17 @@ +using AppKit; +using Foundation; + +namespace macOSApp1 { + [Register ("AppDelegate")] + public class AppDelegate : NSApplicationDelegate { + public override void DidFinishLaunching (NSNotification notification) + { + // Insert code here to initialize your application + } + + public override void WillTerminate (NSNotification notification) + { + // Insert code here to tear down your application + } + } +} diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png new file mode 100644 index 000000000000..d0b5a8098ec9 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png new file mode 100644 index 000000000000..f4c8d29047b8 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png new file mode 100644 index 000000000000..ebb5a0fe4e7e Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png new file mode 100644 index 000000000000..0986d31bebb1 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png new file mode 100644 index 000000000000..f4c8d29047b8 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png new file mode 100644 index 000000000000..a142c83fb1c3 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png new file mode 100644 index 000000000000..0986d31bebb1 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png new file mode 100644 index 000000000000..412d6ca9b42c Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png new file mode 100644 index 000000000000..a142c83fb1c3 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png new file mode 100644 index 000000000000..e99022ae84d0 Binary files /dev/null and b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png differ diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/Contents.json b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000000..6b28545295b1 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images": [ + { + "filename": "AppIcon-16.png", + "size": "16x16", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-16@2x.png", + "size": "16x16", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-32.png", + "size": "32x32", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-32@2x.png", + "size": "32x32", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-128.png", + "size": "128x128", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-128@2x.png", + "size": "128x128", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-256.png", + "size": "256x256", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-256@2x.png", + "size": "256x256", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-512.png", + "size": "512x512", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-512@2x.png", + "size": "512x512", + "scale": "2x", + "idiom": "mac" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/Contents.json b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.macOS.Templates/macos/Entitlements.plist b/dotnet/Microsoft.macOS.Templates/macos/Entitlements.plist new file mode 100644 index 000000000000..9ae599370b42 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/dotnet/Microsoft.macOS.Templates/macos/Info.plist b/dotnet/Microsoft.macOS.Templates/macos/Info.plist new file mode 100644 index 000000000000..f3a5910c1771 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleName + macOSApp1 + CFBundleIdentifier + com.companyname.macOSApp1 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + minOSVersion + CFBundleDevelopmentRegion + en + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + NSHumanReadableCopyright + ${AuthorCopyright:HtmlEncode} + NSPrincipalClass + NSApplication + NSMainStoryboardFile + Main + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/dotnet/Microsoft.macOS.Templates/macos/Main.cs b/dotnet/Microsoft.macOS.Templates/macos/Main.cs new file mode 100644 index 000000000000..9ab3adddce38 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/Main.cs @@ -0,0 +1,11 @@ +using AppKit; + +namespace macOSApp1 { + static class Application { + static void Main (string [] args) + { + NSApplication.Init (); + NSApplication.Main (args); + } + } +} diff --git a/dotnet/Microsoft.macOS.Templates/macos/Main.storyboard b/dotnet/Microsoft.macOS.Templates/macos/Main.storyboard new file mode 100644 index 000000000000..b9829e782258 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/Main.storyboard @@ -0,0 +1,717 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/Microsoft.macOS.Templates/macos/ViewController.cs b/dotnet/Microsoft.macOS.Templates/macos/ViewController.cs new file mode 100644 index 000000000000..bc3d8f7dc3bc --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/ViewController.cs @@ -0,0 +1,28 @@ +using System; + +using AppKit; +using Foundation; + +namespace macOSApp1 { + public partial class ViewController : NSViewController { + public ViewController (IntPtr handle) : base (handle) + { + } + + public override void ViewDidLoad () + { + base.ViewDidLoad (); + + // Do any additional setup after loading the view. + } + + public override NSObject RepresentedObject { + get => base.RepresentedObject; + set { + base.RepresentedObject = value; + + // Update the view, if already loaded. + } + } + } +} diff --git a/dotnet/Microsoft.macOS.Templates/macos/ViewController.designer.cs b/dotnet/Microsoft.macOS.Templates/macos/ViewController.designer.cs new file mode 100644 index 000000000000..16753e847547 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/ViewController.designer.cs @@ -0,0 +1,16 @@ +// WARNING +// +// This file has been generated automatically by Visual Studio to store outlets and +// actions made in the UI designer. If it is removed, they will be lost. +// Manual changes to this file may not be handled correctly. +// +using Foundation; + +namespace macOSApp1 { + [Register ("ViewController")] + partial class ViewController { + void ReleaseDesignerOutlets () + { + } + } +} diff --git a/dotnet/Microsoft.macOS.Templates/macos/macOSApp1.csproj b/dotnet/Microsoft.macOS.Templates/macos/macOSApp1.csproj new file mode 100644 index 000000000000..51a666d2eb08 --- /dev/null +++ b/dotnet/Microsoft.macOS.Templates/macos/macOSApp1.csproj @@ -0,0 +1,7 @@ + + + net6.0-macos + macOSApp1 + Exe + + \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/.template.config/template.json b/dotnet/Microsoft.tvOS.Templates/tvos/.template.config/template.json new file mode 100644 index 000000000000..b1e83f72eb95 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/.template.config/template.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft", + "classifications": [ "tvOS" ], + "identity": "Microsoft.tvOS.tvOSApp", + "name": "tvOS Application", + "description": "A project for creating an tvOS application", + "shortName": "tvos", + "tags": { + "language": "C#", + "type": "project" + }, + "sourceName": "tvOSApp1", + "preferNameDirectory": true, + "primaryOutputs": [ + { "path": "tvOSApp1.csproj" } + ], + "symbols": { + "bundleId": { + "type": "parameter", + "description": "Overrides CFBundleIdentifier in the Info.plist", + "datatype": "string", + "replaces": "com.companyname.tvOSApp1" + }, + "minOSVersion": { + "type": "parameter", + "description": "Overrides MinimumOSVersion in the Info.plist", + "replaces": "minOSVersion", + "datatype": "string", + "defaultValue": "11.2" + } + }, + "defaultName": "tvOSApp1" +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/AppDelegate.cs b/dotnet/Microsoft.tvOS.Templates/tvos/AppDelegate.cs new file mode 100644 index 000000000000..8a0322fb278f --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/AppDelegate.cs @@ -0,0 +1,20 @@ +using Foundation; +using UIKit; + +namespace tvOSApp1 { + [Register ("AppDelegate")] + public class AppDelegate : UIApplicationDelegate { + public override UIWindow Window { + get; + set; + } + + public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) + { + // Override point for customization after application launch. + // If not required for your application you can safely delete this method + + return true; + } + } +} diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json new file mode 100644 index 000000000000..521695b4f597 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json @@ -0,0 +1,17 @@ +{ + "layers" : [ + { + "filename" : "Front.imagestacklayer" + }, + { + "filename" : "Middle.imagestacklayer" + }, + { + "filename" : "Back.imagestacklayer" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json new file mode 100644 index 000000000000..521695b4f597 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json @@ -0,0 +1,17 @@ +{ + "layers" : [ + { + "filename" : "Front.imagestacklayer" + }, + { + "filename" : "Middle.imagestacklayer" + }, + { + "filename" : "Back.imagestacklayer" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json new file mode 100644 index 000000000000..df957c0d736c --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json @@ -0,0 +1,32 @@ +{ + "assets" : [ + { + "size" : "1280x768", + "idiom" : "tv", + "filename" : "App Icon - Large.imagestack", + "role" : "primary-app-icon" + }, + { + "size" : "400x240", + "idiom" : "tv", + "filename" : "App Icon - Small.imagestack", + "role" : "primary-app-icon" + }, + { + "size" : "2320x720", + "idiom" : "tv", + "filename" : "Top Shelf Image Wide.imageset", + "role" : "top-shelf-image-wide" + }, + { + "size" : "1920x720", + "idiom" : "tv", + "filename" : "Top Shelf Image.imageset", + "role" : "top-shelf-image" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json new file mode 100644 index 000000000000..3767d60b0e03 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images": [ + { + "idiom": "universal" + }, + { + "scale": "1x", + "idiom": "universal" + }, + { + "scale": "2x", + "idiom": "universal" + }, + { + "scale": "3x", + "idiom": "universal" + }, + { + "idiom": "iphone" + }, + { + "scale": "1x", + "idiom": "iphone" + }, + { + "scale": "2x", + "idiom": "iphone" + }, + { + "subtype": "retina4", + "scale": "2x", + "idiom": "iphone" + }, + { + "scale": "3x", + "idiom": "iphone" + }, + { + "idiom": "ipad" + }, + { + "scale": "1x", + "idiom": "ipad" + }, + { + "scale": "2x", + "idiom": "ipad" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/Contents.json b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/Contents.json new file mode 100644 index 000000000000..4caf392f92c9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Entitlements.plist b/dotnet/Microsoft.tvOS.Templates/tvos/Entitlements.plist new file mode 100644 index 000000000000..9ae599370b42 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Info.plist b/dotnet/Microsoft.tvOS.Templates/tvos/Info.plist new file mode 100644 index 000000000000..d78de584c2dd --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDisplayName + tvOSApp1 + CFBundleIdentifier + com.companyname.tvOSApp1 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + MinimumOSVersion + minOSVersion + UIDeviceFamily + + 3 + + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + arm64 + + XSAppIconAssets + Assets.xcassets/App Icon & Top Shelf Image.brandassets + + diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Main.cs b/dotnet/Microsoft.tvOS.Templates/tvos/Main.cs new file mode 100644 index 000000000000..1edc3a5a264e --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Main.cs @@ -0,0 +1,13 @@ +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"); + } + } +} diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/Main.storyboard b/dotnet/Microsoft.tvOS.Templates/tvos/Main.storyboard new file mode 100644 index 000000000000..9a62956232a1 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/Main.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/ViewController.cs b/dotnet/Microsoft.tvOS.Templates/tvos/ViewController.cs new file mode 100644 index 000000000000..b86d0868e432 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/ViewController.cs @@ -0,0 +1,11 @@ +using System; +using Foundation; +using UIKit; + +namespace tvOSApp1 { + public partial class ViewController : UIViewController { + public ViewController (IntPtr handle) : base (handle) + { + } + } +} diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/ViewController.designer.cs b/dotnet/Microsoft.tvOS.Templates/tvos/ViewController.designer.cs new file mode 100644 index 000000000000..7e4037972da9 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/ViewController.designer.cs @@ -0,0 +1,15 @@ +// +// This file has been generated automatically by Visual Studio to store outlets and +// actions made in the Xcode designer. If it is removed, they will be lost. +// Manual changes to this file may not be handled correctly. +// +using Foundation; + +namespace tvOSApp1 { + [Register ("ViewController")] + partial class ViewController { + void ReleaseDesignerOutlets () + { + } + } +} diff --git a/dotnet/Microsoft.tvOS.Templates/tvos/tvOSApp1.csproj b/dotnet/Microsoft.tvOS.Templates/tvos/tvOSApp1.csproj new file mode 100644 index 000000000000..3a04fe1bc3d6 --- /dev/null +++ b/dotnet/Microsoft.tvOS.Templates/tvos/tvOSApp1.csproj @@ -0,0 +1,7 @@ + + + net6.0-tvos + tvOSApp1 + Exe + + \ No newline at end of file diff --git a/dotnet/package/Microsoft.MacCatalyst.Templates/package.csproj b/dotnet/package/Microsoft.MacCatalyst.Templates/package.csproj new file mode 100644 index 000000000000..7226a2b2feb6 --- /dev/null +++ b/dotnet/package/Microsoft.MacCatalyst.Templates/package.csproj @@ -0,0 +1,8 @@ + + + + <_PlatformName>MacCatalyst + + + + diff --git a/dotnet/package/Microsoft.iOS.Templates/package.csproj b/dotnet/package/Microsoft.iOS.Templates/package.csproj new file mode 100644 index 000000000000..ffe5405b290b --- /dev/null +++ b/dotnet/package/Microsoft.iOS.Templates/package.csproj @@ -0,0 +1,8 @@ + + + + <_PlatformName>iOS + + + + diff --git a/dotnet/package/Microsoft.macOS.Templates/package.csproj b/dotnet/package/Microsoft.macOS.Templates/package.csproj new file mode 100644 index 000000000000..2dd4860a58c5 --- /dev/null +++ b/dotnet/package/Microsoft.macOS.Templates/package.csproj @@ -0,0 +1,8 @@ + + + + <_PlatformName>macOS + + + + diff --git a/dotnet/package/Microsoft.tvOS.Templates/package.csproj b/dotnet/package/Microsoft.tvOS.Templates/package.csproj new file mode 100644 index 000000000000..00c82adb5c09 --- /dev/null +++ b/dotnet/package/Microsoft.tvOS.Templates/package.csproj @@ -0,0 +1,8 @@ + + + + <_PlatformName>tvOS + + + + diff --git a/dotnet/package/common.csproj b/dotnet/package/common.csproj index a3dfc5969c63..59375041582d 100644 --- a/dotnet/package/common.csproj +++ b/dotnet/package/common.csproj @@ -4,6 +4,7 @@ net6.0 false + DotnetPlatform $(_PackageVersion) https://github.com/xamarin/xamarin-macios $(CurrentBranch) @@ -17,7 +18,7 @@ <_RepositoryPath>$(MSBuildThisFileDirectory)/../.. <_buildPath>$(_RepositoryPath)/_build - <_packagePath>$(_buildPath)\$(PackageId)\ + <_packagePath Condition="'$(_packagePath)' == ''">$(_buildPath)\$(PackageId)\ <_AssemblyInfix Condition="'$(_PlatformName)' == 'iOS'">iOS <_AssemblyInfix Condition="'$(_PlatformName)' == 'tvOS'">TVOS diff --git a/dotnet/package/microsoft.templates.csproj b/dotnet/package/microsoft.templates.csproj new file mode 100644 index 000000000000..d6e4efc95e1b --- /dev/null +++ b/dotnet/package/microsoft.templates.csproj @@ -0,0 +1,9 @@ + + + Microsoft.$(_PlatformName).Templates + Template + Templates for $(_PlatformName) platforms + <_packagePath>$(MSBuildThisFileDirectory)..\Microsoft.$(_PlatformName).Templates\ + + + diff --git a/dotnet/targets/WorkloadManifest.template.json b/dotnet/targets/WorkloadManifest.template.json index 11bffc76f8d8..12b74cf00a3e 100644 --- a/dotnet/targets/WorkloadManifest.template.json +++ b/dotnet/targets/WorkloadManifest.template.json @@ -6,6 +6,7 @@ "packs": [ "Microsoft.@PLATFORM@.Sdk", "Microsoft.@PLATFORM@.Ref", + "Microsoft.@PLATFORM@.Templates" ] } }, @@ -17,6 +18,10 @@ "Microsoft.@PLATFORM@.Ref": { "kind": "framework", "version": "@VERSION@" + }, + "Microsoft.@PLATFORM@.Templates": { + "kind": "template", + "version": "@VERSION@" } } }