From 779d96c82c07a734bbef9a61ba7adba5493d2489 Mon Sep 17 00:00:00 2001 From: Caspian Peng Date: Thu, 17 Oct 2024 15:31:46 +0800 Subject: [PATCH] Add tag when generating csprojs for Tuanjie Engine --- .../Tests/Editor/CSProjectTests.cs | 19 ++++++++++++++++--- .../ProjectGeneration/ProjectGeneration.cs | 8 ++++++++ .../ProjectGeneration/ProjectProperties.cs | 1 + 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/Packages/com.unity.ide.visualstudio.tests/Tests/Editor/CSProjectTests.cs b/Packages/com.unity.ide.visualstudio.tests/Tests/Editor/CSProjectTests.cs index 123dbc3..02aec14 100644 --- a/Packages/com.unity.ide.visualstudio.tests/Tests/Editor/CSProjectTests.cs +++ b/Packages/com.unity.ide.visualstudio.tests/Tests/Editor/CSProjectTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text.RegularExpressions; using System.Xml; +using SR = System.Reflection; using NUnit.Framework; using UnityEditor; using UnityEditor.Compilation; @@ -118,9 +119,12 @@ public void DefaultSyncSettings_WhenSynced_CreatesProjectFileFromDefaultTemplate var projectType = ProjectTypeOf(m_Builder.Assembly.name); var buildTarget = projectType + ":" + (int)projectType; var unityVersion = Application.unityVersion; + SR.PropertyInfo tuanjieVersionPropertyInfo = typeof(Application).GetProperty("tuanjieVersion", SR.BindingFlags.Public | SR.BindingFlags.Static); + object tuanjieVersionPropertyValue = tuanjieVersionPropertyInfo != null ? tuanjieVersionPropertyInfo.GetValue(null, null) : null; + var tuanjieVersion = tuanjieVersionPropertyValue != null ? tuanjieVersionPropertyValue.ToString() : string.Empty; var packageVersion = UnityEditor.PackageManager.PackageInfo.FindForAssembly(typeof(AssemblyNameProvider).Assembly).version; - var content = new[] + var contentPart0 = new[] { "", "", @@ -176,7 +180,16 @@ public void DefaultSyncSettings_WhenSynced_CreatesProjectFileFromDefaultTemplate " Legacy", $" {buildTarget}", $" {EditorUserBuildSettings.activeBuildTarget + ":" + (int)EditorUserBuildSettings.activeBuildTarget}", - $" {unityVersion}", + $" {unityVersion}" + }; + + var contentPart1 = new[] + { + $" {tuanjieVersion}" + }; + + var contentPart2 = new[] + { " ", " ", " ", @@ -195,7 +208,7 @@ public void DefaultSyncSettings_WhenSynced_CreatesProjectFileFromDefaultTemplate "", "" }; - + var content = string.IsNullOrEmpty(tuanjieVersion) ? contentPart0.Concat(contentPart2).ToArray() : contentPart0.Concat(contentPart1).Concat(contentPart2).ToArray(); StringAssert.AreEqualIgnoringCase(string.Join("\r\n", content), csprojContent); } } diff --git a/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectGeneration.cs b/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectGeneration.cs index 74afcff..f68f67a 100644 --- a/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectGeneration.cs +++ b/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectGeneration.cs @@ -718,6 +718,9 @@ out StringBuilder headerBuilder { var projectType = ProjectTypeOf(assembly.name); + SR.PropertyInfo tuanjieVersionPropertyInfo = typeof(Application).GetProperty("tuanjieVersion", SR.BindingFlags.Public | SR.BindingFlags.Static); + object tuanjieVersionPropertyValue = tuanjieVersionPropertyInfo != null ? tuanjieVersionPropertyInfo.GetValue(null, null) : null; + var projectProperties = new ProjectProperties { ProjectGuid = ProjectGuid(assembly), @@ -732,6 +735,7 @@ out StringBuilder headerBuilder FlavoringProjectType = projectType + ":" + (int)projectType, FlavoringBuildTarget = EditorUserBuildSettings.activeBuildTarget + ":" + (int)EditorUserBuildSettings.activeBuildTarget, FlavoringUnityVersion = Application.unityVersion, + FlavoringTuanjieVersion = tuanjieVersionPropertyValue != null ? tuanjieVersionPropertyValue.ToString() : string.Empty, FlavoringPackageVersion = VisualStudioIntegration.PackageVersion(), }; @@ -847,6 +851,10 @@ internal void GetProjectHeaderVstuFlavoring(ProjectProperties properties, String headerBuilder.Append(@" ").Append(properties.FlavoringProjectType).Append(@"").Append(k_WindowsNewline); headerBuilder.Append(@" ").Append(properties.FlavoringBuildTarget).Append(@"").Append(k_WindowsNewline); headerBuilder.Append(@" ").Append(properties.FlavoringUnityVersion).Append(@"").Append(k_WindowsNewline); + if (!string.IsNullOrEmpty(properties.FlavoringTuanjieVersion)) + { + headerBuilder.Append(@" ").Append(properties.FlavoringTuanjieVersion).Append(@"").Append(k_WindowsNewline); + } headerBuilder.Append(@" ").Append(k_WindowsNewline); } diff --git a/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectProperties.cs b/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectProperties.cs index c8963e0..abcf891 100644 --- a/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectProperties.cs +++ b/Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/ProjectProperties.cs @@ -25,6 +25,7 @@ internal class ProjectProperties public string FlavoringProjectType { get; set; } = string.Empty; public string FlavoringBuildTarget { get; set; } = string.Empty; public string FlavoringUnityVersion { get; set; } = string.Empty; + public string FlavoringTuanjieVersion { get; set; } = string.Empty; public string FlavoringPackageVersion { get; set; } = string.Empty; } }