diff --git a/code/SharedFunctionality.Core/Gen/GenContext.cs b/code/SharedFunctionality.Core/Gen/GenContext.cs
index 0e96959b5..9e2abef19 100644
--- a/code/SharedFunctionality.Core/Gen/GenContext.cs
+++ b/code/SharedFunctionality.Core/Gen/GenContext.cs
@@ -73,10 +73,7 @@ namespace Microsoft.Templates.Core.Gen
AppHealth.Current.AddWriter(new ShellHealthWriter(shell));
AppHealth.Current.IntializeTelemetryClient(shell);
-#if DEBUG
- // Only show in debug as the file includes the AppInsights telemetry key
AppHealth.Current.Info.TrackAsync($"{StringRes.ConfigurationFileLoadedString}: {Configuration.LoadedConfigFile}").FireAndForget();
-#endif
string hostVersion = $"{shell.VisualStudio.GetVsVersionAndInstance()}-{wizardVersion}";
diff --git a/code/SharedResources/SharedResources.csproj b/code/SharedResources/SharedResources.csproj
index 27cb0a64f..24032aa83 100644
--- a/code/SharedResources/SharedResources.csproj
+++ b/code/SharedResources/SharedResources.csproj
@@ -102,6 +102,12 @@
7.3
prompt
+
+ true
+
+
+ SharedResources.snk
+
diff --git a/code/TemplateStudioForUWP/Commands/Resources/TemplateStudioCommand.png b/code/TemplateStudioForUWP/Commands/Resources/TemplateStudioCommand.png
new file mode 100644
index 000000000..893709bf5
Binary files /dev/null and b/code/TemplateStudioForUWP/Commands/Resources/TemplateStudioCommand.png differ
diff --git a/code/TemplateStudioForUWP/Commands/TemplateStudioCommand.cs b/code/TemplateStudioForUWP/Commands/TemplateStudioCommand.cs
new file mode 100644
index 000000000..214f840ad
--- /dev/null
+++ b/code/TemplateStudioForUWP/Commands/TemplateStudioCommand.cs
@@ -0,0 +1,22 @@
+using System;
+using System.ComponentModel.Design;
+using Microsoft.Templates.Core;
+using Microsoft.VisualStudio.Shell;
+
+namespace TemplateStudioForUwp.Commands
+{
+ internal sealed class TemplateStudioCommand
+ {
+ public TemplateStudioCommand(AsyncPackage package, OleMenuCommandService commandService, int commandId, Guid commandSet, Action
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ Always
+ true
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
+
+ TemplateStudioKey.snk
+
+
Designer
VsixManifestGenerator
@@ -172,10 +235,29 @@
+
+
+ VsctGenerator
+ TemplateStudioForUwpPackage1.cs
+
+
+
+
+
+
+
+
+
+
+
Always
true
+
+ Always
+ true
+
@@ -202,6 +284,9 @@
Designer
+
+
+
diff --git a/code/TemplateStudioForUWP/TemplateStudioForUwpPackage.cs b/code/TemplateStudioForUWP/TemplateStudioForUwpPackage.cs
new file mode 100644
index 000000000..255e77c7e
--- /dev/null
+++ b/code/TemplateStudioForUWP/TemplateStudioForUwpPackage.cs
@@ -0,0 +1,167 @@
+using System;
+using System.ComponentModel.Design;
+using System.Runtime.InteropServices;
+using System.Threading;
+using Microsoft.Templates.Core;
+using Microsoft.Templates.UI.VisualStudio;
+using Microsoft.VisualStudio.Shell;
+using TemplateStudioForUwp.Commands;
+using Task = System.Threading.Tasks.Task;
+
+namespace TemplateStudioForUwp
+{
+ [ProvideAutoLoad(ActivationContextGuid, PackageAutoLoadFlags.BackgroundLoad)]
+ [ProvideUIContextRule(ActivationContextGuid,
+ name: "Load TW4UWP Project Package",
+ expression: "HasUWP",
+ termNames: new[] { "HasUWP" },
+ termValues: new[] { "SolutionHasProjectFlavor:{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A}" })]
+ [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
+ [Guid(PackageGuids.guidTemplateStudioForUwpPackageString)]
+ [ProvideMenuResource("Menus.ctmenu", 1)]
+ public sealed class TemplateStudioForUwpPackage : AsyncPackage
+ {
+ public const string ActivationContextGuid = "AD9D5551-71CA-4860-8071-2FDB57A89551";
+ private readonly Lazy _rightClickActions = new Lazy(() => new RightClickActions());
+
+ private RightClickActions RightClickActions => _rightClickActions.Value;
+
+#pragma warning disable IDE0052 // Remove unread private members
+ private TemplateStudioCommand addPageCommand;
+ private TemplateStudioCommand addFeatureCommand;
+ private TemplateStudioCommand addServiceCommand;
+ private TemplateStudioCommand addTestingCommand;
+ private TemplateStudioCommand openTempFolderCommand;
+#pragma warning restore IDE0052 // Remove unread private members
+
+ protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
+ {
+ // When initialized asynchronously, the current thread may be a background thread at this point.
+ // Do any initialization that requires the UI thread after switching to the UI thread.
+ await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
+
+ await InitializeCommandsAsync();
+
+ await base.InitializeAsync(cancellationToken, progress);
+ }
+
+ private async Task InitializeCommandsAsync()
+ {
+ await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(this.DisposalToken);
+
+ OleMenuCommandService commandService = await this.GetServiceAsync(typeof(IMenuCommandService)) as OleMenuCommandService;
+
+ addPageCommand = new TemplateStudioCommand(
+ this,
+ commandService,
+ PackageIds.AddPageCommand,
+ PackageGuids.guidTemplateStudioForUwpPackageCmdSet,
+ AddPage,
+ RightClickAvailable,
+ TemplateType.Page);
+
+ addFeatureCommand = new TemplateStudioCommand(
+ this,
+ commandService,
+ PackageIds.AddFeatureCommand,
+ PackageGuids.guidTemplateStudioForUwpPackageCmdSet,
+ AddFeature,
+ RightClickAvailable,
+ TemplateType.Feature);
+
+ addServiceCommand = new TemplateStudioCommand(
+ this,
+ commandService,
+ PackageIds.AddServiceCommand,
+ PackageGuids.guidTemplateStudioForUwpPackageCmdSet,
+ AddService,
+ RightClickAvailable,
+ TemplateType.Service);
+
+ addTestingCommand = new TemplateStudioCommand(
+ this,
+ commandService,
+ PackageIds.AddTestingCommand,
+ PackageGuids.guidTemplateStudioForUwpPackageCmdSet,
+ AddTesting,
+ RightClickAvailable,
+ TemplateType.Testing);
+
+ openTempFolderCommand = new TemplateStudioCommand(
+ this,
+ commandService,
+ PackageIds.OpenTempFolder,
+ PackageGuids.guidTemplateStudioForUwpPackageCmdSet,
+ OpenTempFolder,
+ TempFolderAvailable,
+ TemplateType.Unspecified);
+ }
+
+ private void AddPage(object sender, EventArgs e)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ if (RightClickActions.VisibleForUwp(TemplateType.Page))
+ {
+ RightClickActions.AddNewPage();
+ }
+ }
+
+ private void AddFeature(object sender, EventArgs e)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ if (RightClickActions.VisibleForUwp(TemplateType.Feature))
+ {
+ RightClickActions.AddNewFeature();
+ }
+ }
+
+ private void AddService(object sender, EventArgs e)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ if (RightClickActions.VisibleForUwp(TemplateType.Service))
+ {
+ RightClickActions.AddNewService();
+ }
+ }
+
+ private void AddTesting(object sender, EventArgs e)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ if (RightClickActions.VisibleForUwp(TemplateType.Testing))
+ {
+ RightClickActions.AddNewTesting();
+ }
+ }
+
+ private void OpenTempFolder(object sender, EventArgs e)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ if (RightClickActions.TempFolderAvailable() && RightClickActions.VisibleForUwp())
+ {
+ RightClickActions.OpenTempFolder();
+ }
+ }
+
+ private void RightClickAvailable(object sender, TemplateType templateType)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ var cmd = (OleMenuCommand)sender;
+ cmd.Enabled = RightClickActions.Enabled();
+ cmd.Visible = RightClickActions.VisibleForUwp(templateType);
+ }
+
+ private void TempFolderAvailable(object sender, TemplateType templateType)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+
+ var cmd = (OleMenuCommand)sender;
+ cmd.Visible = RightClickActions.VisibleForUwp() && RightClickActions.TempFolderAvailable();
+ }
+ }
+}
diff --git a/code/TemplateStudioForUWP/TemplateStudio_Logo_90x90.png b/code/TemplateStudioForUWP/TemplateStudio_Logo_90x90.png
new file mode 100644
index 000000000..acb095e8c
Binary files /dev/null and b/code/TemplateStudioForUWP/TemplateStudio_Logo_90x90.png differ
diff --git a/code/TemplateStudioForUWP/cs-CZ/Extension.vsixlangpack b/code/TemplateStudioForUWP/cs-CZ/Extension.vsixlangpack
new file mode 100644
index 000000000..f60e2b081
--- /dev/null
+++ b/code/TemplateStudioForUWP/cs-CZ/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio urychluje vytváření nových UWP, WPF a WinUI 3 v desktopových aplikacích pomocí uživatelského rozhraní založeného na průvodci.
+ ..\Content\EULA.cs-CZ.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/de-DE/Extension.vsixlangpack b/code/TemplateStudioForUWP/de-DE/Extension.vsixlangpack
new file mode 100644
index 000000000..eb2bc7211
--- /dev/null
+++ b/code/TemplateStudioForUWP/de-DE/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio beschleunigt die Erstellung neuer UWP-, WPF- und WinUI 3 in Desktop-Apps anhand einer assistentenbasierten Benutzeroberfläche.
+ ..\Content\EULA.de-DE.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/es-ES/Extension.vsixlangpack b/code/TemplateStudioForUWP/es-ES/Extension.vsixlangpack
new file mode 100644
index 000000000..36c0b39d9
--- /dev/null
+++ b/code/TemplateStudioForUWP/es-ES/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio acelera la creación de nuevas aplicaciones para UWP, WPF Y WinUI 3 en escritorio mediante una interfaz de usuario basada en asistente.
+ ..\Content\EULA.es-ES.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/fr-FR/Extension.vsixlangpack b/code/TemplateStudioForUWP/fr-FR/Extension.vsixlangpack
new file mode 100644
index 000000000..db19df4da
--- /dev/null
+++ b/code/TemplateStudioForUWP/fr-FR/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio permet d’accélérer la création de nouvelles applications UWP, WPF et WinUI 3 dans desktop grâce à une interface utilisateur basée sur un assistant.
+ ..\Content\EULA.fr-FR.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/it-IT/Extension.vsixlangpack b/code/TemplateStudioForUWP/it-IT/Extension.vsixlangpack
new file mode 100644
index 000000000..23cc54615
--- /dev/null
+++ b/code/TemplateStudioForUWP/it-IT/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio accelera la creazione di nuovi UWP, WPF e WinUI 3 nelle app desktop mediante un'interfaccia utente basata su procedure guidate.
+ ..\Content\EULA.it-IT.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/ja-JP/Extension.vsixlangpack b/code/TemplateStudioForUWP/ja-JP/Extension.vsixlangpack
new file mode 100644
index 000000000..e0425c746
--- /dev/null
+++ b/code/TemplateStudioForUWP/ja-JP/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio では、ウィザード ベースの UI を使用してデスクトップ アプリで新しい UWP、WPF、WinUI 3 の作成が高速化されます。
+ ..\Content\EULA.ja-JP.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/ko-KR/Extension.vsixlangpack b/code/TemplateStudioForUWP/ko-KR/Extension.vsixlangpack
new file mode 100644
index 000000000..e22ef0bd9
--- /dev/null
+++ b/code/TemplateStudioForUWP/ko-KR/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio스튜디오는 마법사 기반 UI를 사용하여 데스크톱 앱에서 새로운 UWP, WPF 및 WinUI 3의 생성을 가속화합니다.
+ ..\Content\EULA.ko-KR.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/pl-PL/Extension.vsixlangpack b/code/TemplateStudioForUWP/pl-PL/Extension.vsixlangpack
new file mode 100644
index 000000000..42fab0a9c
--- /dev/null
+++ b/code/TemplateStudioForUWP/pl-PL/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio przyspiesza tworzenie nowych platformy uniwersalnej systemu Windows, WPF i WinUI 3 w aplikacjach klasycznych przy użyciu interfejsu użytkownika z elementami kreatora.
+ ..\Content\EULA.pl-PL.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/pt-BR/Extension.vsixlangpack b/code/TemplateStudioForUWP/pt-BR/Extension.vsixlangpack
new file mode 100644
index 000000000..dbf8f6e5c
--- /dev/null
+++ b/code/TemplateStudioForUWP/pt-BR/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ O Template Studio acelera a criação de novos aplicativos UWP, WPF e WinUI 3 em aplicativos de Desktop usando uma interface do usuário baseada em assistente.
+ ..\Content\EULA.pt-BR.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/ru-RU/Extension.vsixlangpack b/code/TemplateStudioForUWP/ru-RU/Extension.vsixlangpack
new file mode 100644
index 000000000..0712c5383
--- /dev/null
+++ b/code/TemplateStudioForUWP/ru-RU/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio ускоряет создание новых приложений UWP, WPF и WinUI 3 в настольных приложениях с использованием пользовательского интерфейса на основе мастеров.
+ ..\Content\EULA.ru-RU.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/source.extension.cs b/code/TemplateStudioForUWP/source.extension.cs
index b2524448c..8964fbf2b 100644
--- a/code/TemplateStudioForUWP/source.extension.cs
+++ b/code/TemplateStudioForUWP/source.extension.cs
@@ -8,11 +8,11 @@ namespace TemplateStudioForUWP
internal sealed partial class Vsix
{
public const string Id = "TemplateStudioForUWP.587647be-736e-4495-9a0f-d0d08148ee9b";
- public const string Name = "TemplateStudioForUWP";
- public const string Description = @"Empty VSIX Project.";
+ public const string Name = "Template Studio for UWP";
+ public const string Description = @"Windows Template Studio accelerates the creation of new UWP, WPF and WinUI 3 in Desktop apps using a wizard-based UI.";
public const string Language = "en-US";
public const string Version = "1.0";
- public const string Author = "Matt Lacey";
- public const string Tags = "";
+ public const string Author = "Microsoft Corporation";
+ public const string Tags = "Template Studio, UWP, XAML, MVVM";
}
}
diff --git a/code/TemplateStudioForUWP/source.extension.vsixmanifest b/code/TemplateStudioForUWP/source.extension.vsixmanifest
index ee7ae4ff5..6f2d69bad 100644
--- a/code/TemplateStudioForUWP/source.extension.vsixmanifest
+++ b/code/TemplateStudioForUWP/source.extension.vsixmanifest
@@ -1,9 +1,14 @@
-
- TemplateStudioForUWP
- Empty VSIX Project.
+
+ Template Studio for UWP
+ Windows Template Studio accelerates the creation of new UWP, WPF and WinUI 3 in Desktop apps using a wizard-based UI.
+ https://github.com/Microsoft/TemplateStudio/
+ Content\EULA.rtf
+ https://github.com/microsoft/TemplateStudio/blob/main/docs/readme.md
+ TemplateStudio_Logo_90x90.png
+ Template Studio, UWP, XAML, MVVM
true
diff --git a/code/TemplateStudioForUWP/tr-TR/Extension.vsixlangpack b/code/TemplateStudioForUWP/tr-TR/Extension.vsixlangpack
new file mode 100644
index 000000000..a7599cd68
--- /dev/null
+++ b/code/TemplateStudioForUWP/tr-TR/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio, sihirbaz tabanlı bir kullanıcı arabirimi kullanarak Masaüstü uygulamalarında yeni UWP, WPF ve WinUI 3 oluşturulmasını hızlandırır.
+ ..\Content\EULA.tr-TR.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/zh-CN/Extension.vsixlangpack b/code/TemplateStudioForUWP/zh-CN/Extension.vsixlangpack
new file mode 100644
index 000000000..d1ab373ed
--- /dev/null
+++ b/code/TemplateStudioForUWP/zh-CN/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio 使用基于向导的 UI 加速在桌面应用中创建新的 UWP、WPF 和 WinUI 3。
+ ..\Content\EULA.zh-CN.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioForUWP/zh-TW/Extension.vsixlangpack b/code/TemplateStudioForUWP/zh-TW/Extension.vsixlangpack
new file mode 100644
index 000000000..bb529cabf
--- /dev/null
+++ b/code/TemplateStudioForUWP/zh-TW/Extension.vsixlangpack
@@ -0,0 +1,7 @@
+
+
+ Template Studio for UWP
+ Template Studio 使用基於嚮導的 UI 加速在桌面應用中創建新的 UWP、WPF 和 WinUI 3。
+ ..\Content\EULA.zh-TW.rtf
+ https://github.com/Microsoft/TemplateStudio/
+
\ No newline at end of file
diff --git a/code/TemplateStudioKey.snk b/code/TemplateStudioKey.snk
new file mode 100644
index 000000000..c96d64b98
Binary files /dev/null and b/code/TemplateStudioKey.snk differ
diff --git a/code/src/Installer/source.extension.vsixmanifest b/code/src/Installer/source.extension.vsixmanifest
index ff72ab035..ab6196cb3 100644
--- a/code/src/Installer/source.extension.vsixmanifest
+++ b/code/src/Installer/source.extension.vsixmanifest
@@ -6,7 +6,7 @@
Windows Template Studio accelerates the creation of new UWP, WPF and WinUI 3 in Desktop apps using a wizard-based UI.
https://github.com/Microsoft/WindowsTemplateStudio/
Content\EULA.rtf
- https://github.com/Microsoft/WindowsTemplateStudio/blob/release/docs/readme.md
+ https://github.com/microsoft/TemplateStudio/blob/main/docs/readme.md
https://github.com/Microsoft/WindowsTemplateStudio/
Resources\windowsTemplateStudio_Logo_90x90.png
Windows Template Studio UWP XAML MVVM WPF WinUI3