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.tests/package.json b/Packages/com.unity.ide.visualstudio.tests/package.json index d3258dd..6bd552d 100644 --- a/Packages/com.unity.ide.visualstudio.tests/package.json +++ b/Packages/com.unity.ide.visualstudio.tests/package.json @@ -3,7 +3,7 @@ "name": "com.unity.ide.visualstudio.tests", "displayName": "Visual Studio Editor", "description": "Code editor integration for supporting Visual Studio as code editor for unity. Adds support for generating csproj files for intellisense purposes, auto discovery of installations, etc.", - "version": "2.0.21", + "version": "2.0.22", "unity": "2019.4", "unityRelease": "25f1", "dependencies": { diff --git a/Packages/com.unity.ide.visualstudio/CHANGELOG.md b/Packages/com.unity.ide.visualstudio/CHANGELOG.md index 11c0ada..0daa3e5 100644 --- a/Packages/com.unity.ide.visualstudio/CHANGELOG.md +++ b/Packages/com.unity.ide.visualstudio/CHANGELOG.md @@ -1,5 +1,20 @@ # Code Editor Package for Visual Studio +## [2.0.22] - 2023-10-03 + +Integration: + +- Add support for `XDG_DATA_DIRS` and `.desktop` files on Linux for `VS Code` discovery. +- Use compile-time platform-specifics instead of using runtime conditions. + +Project generation: + +- Suppress `USG0001` warnings. +- Mark referenced assemblies as private (to not copy extra files to output directory when building). +- Add Unity capability to SDK-Style projects. +- Prevent circular dependency errors with SDK-Style projects. + + ## [2.0.21] - 2023-09-05 Integration: 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; } } diff --git a/Packages/com.unity.ide.visualstudio/package.json b/Packages/com.unity.ide.visualstudio/package.json index 6665c4e..4fbd89c 100644 --- a/Packages/com.unity.ide.visualstudio/package.json +++ b/Packages/com.unity.ide.visualstudio/package.json @@ -2,13 +2,13 @@ "name": "com.unity.ide.visualstudio", "displayName": "Visual Studio Editor", "description": "Code editor integration for supporting Visual Studio as code editor for unity. Adds support for generating csproj files for intellisense purposes, auto discovery of installations, etc.", - "version": "2.0.21", + "version": "2.0.22", "unity": "2019.4", "unityRelease": "25f1", "dependencies": { "com.unity.test-framework": "1.1.9" }, "relatedPackages": { - "com.unity.ide.visualstudio.tests": "2.0.21" + "com.unity.ide.visualstudio.tests": "2.0.22" } }