Skip to content

Commit 0969b90

Browse files
author
Unity Technologies
committed
## [2.0.26] - 2025-12-16 Integration: - Fix handling of asset-pipeline refresh-mode setting. Project generation: - Add `EnableOnDemandExcludedFolderLoading` capability when generating SDK-Style project.
1 parent 4385327 commit 0969b90

13 files changed

+63
-25
lines changed

.attestation.p7m

0 Bytes
Binary file not shown.

.signature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"timestamp":1758805756,"signature":"rFYu8qng85dn0g8gjcSs56P0alhGstDP0Ag8d3E/ep0Tk52M5t6LW/uimt862Jw9DGZkbHuOWpCI8PjRXmJORusDX1AG/tdVvIiCBKpmZhDH0UBxQw16eDNCVHNczg8ISVYfGO4f0Z5ioqt0aJUfTdQMr2RtyBQzNRSKXVKdhi8bpfSkzwC7PYrkpqX0dEGOLXguvh4mLKdvxbmm63/YRvrYAHj2xx9WkI1hFE04EYukgPSEuEC8muQj14KtSraLU88C9/1ImAD9o65gKf1BEr5KOLFApcgPSDisrx/EYK7B0xQUft4kF/YqKkQrrrKszqvq/y2+0YcdYpvbAY+gFmk/pl73BCDgxbNhTv6qDUzLD5a0BlCOXBJNtAp4pKGrFkJE0R3NibQ5eeWWFdQJOBeOGwSrpzLIASiJKUuZXJDMGMssXbPIhqV8llAbVMcXTyUZMMFhnl6mE5/MQDFsieOCDIamIzAQMI9YPPt64IjWWtwUQAgGeSKP7J5z/Guh","publicKey":"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQm9qQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FZOEFNSUlCaWdLQ0FZRUFzdUhXYUhsZ0I1cVF4ZEJjTlJKSAordHR4SmoxcVY1NTdvMlZaRE1XaXhYRVBkRTBEMVFkT1JIRXNSS1RscmplUXlERU83ZlNQS0ZwZ1A3MU5TTnJCCkFHM2NFSU45aHNQVDhOVmllZmdWem5QTkVMenFkVmdEbFhpb2VpUnV6OERKWFgvblpmU1JWKytwbk9ySTRibG4KS0twelJlNW14OTc1SjhxZ1FvRktKT0NNRlpHdkJMR2MxSzZZaEIzOHJFODZCZzgzbUovWjBEYkVmQjBxZm13cgo2ZDVFUXFsd0E5Y3JZT1YyV1VpWXprSnBLNmJZNzRZNmM1TmpBcEFKeGNiaTFOaDlRVEhUcU44N0ZtMDF0R1ZwCjVNd1pXSWZuYVRUemEvTGZLelR5U0pka0tldEZMVGdkYXpMYlpzUEE2aHBSK0FJRTJhc0tLTi84UUk1N3UzU2cKL2xyMnZKS1IvU2l5eEN1Q20vQWJkYnJMbXk0WjlSdm1jMGdpclA4T0lLQWxBRWZ2TzV5Z2hSKy8vd1RpTFlzUQp1SllDM0V2UE16ZGdKUzdGR2FscnFLZzlPTCsxVzROY05yNWdveVdSUUJ0cktKaWlTZEJVWmVxb0RvSUY5NHpCCndGbzJJT1JFdXFqcU51M3diMWZIM3p1dGdtalFra3IxVjJhd3hmcExLWlROQWdNQkFBRT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg"}
1+
{"timestamp":1765818833,"signature":"MxpQO0QS6/bBwZ21T+vvxP0TEH8SJxldlBhsLECFkkJH4D9RDjWPluxnfq1QFi8d+FWKcrqa0mXWO5pbWcJwfaBlp8BLB74j+IwTybWlaCUuUj3fzA10rH3GJeGO86ovsM2dxP5G/2w7T/n21zpsjKtxeyOeuvcYPCxA0A8po0vU0w+KAnjuBunyFfCl11IMsQIBTd34eMXwACZyHJ1DsIHukk7iPyFBTH/FHgmt+6qC/xZ+PPAskCsnkbweq1FM80f9KePcY4KiXhj45VGmwAvPCyLJDHrFHTA0wEJKJhgjobqPRJ4VluvJDWk7PdUrZkGAAfgIQvhgFQk33CyVoPsANAr5Ky9/6u+OLE1zuSdYZOd7uKBBOHgrUwRKmnTWcLHq8TbN68qhmFPyIUuDanx7AVKPkgv7RN00vO7LXF7Cz0GvSMZoDplnWCSONBu/j2Tz+PUwbGy+lDcrmer3Wv1mnTbA7JQ0Y0F2uSWfCT59WCa0nZm6x2oZLwesFBMg","publicKey":"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQm9qQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FZOEFNSUlCaWdLQ0FZRUFzdUhXYUhsZ0I1cVF4ZEJjTlJKSAordHR4SmoxcVY1NTdvMlZaRE1XaXhYRVBkRTBEMVFkT1JIRXNSS1RscmplUXlERU83ZlNQS0ZwZ1A3MU5TTnJCCkFHM2NFSU45aHNQVDhOVmllZmdWem5QTkVMenFkVmdEbFhpb2VpUnV6OERKWFgvblpmU1JWKytwbk9ySTRibG4KS0twelJlNW14OTc1SjhxZ1FvRktKT0NNRlpHdkJMR2MxSzZZaEIzOHJFODZCZzgzbUovWjBEYkVmQjBxZm13cgo2ZDVFUXFsd0E5Y3JZT1YyV1VpWXprSnBLNmJZNzRZNmM1TmpBcEFKeGNiaTFOaDlRVEhUcU44N0ZtMDF0R1ZwCjVNd1pXSWZuYVRUemEvTGZLelR5U0pka0tldEZMVGdkYXpMYlpzUEE2aHBSK0FJRTJhc0tLTi84UUk1N3UzU2cKL2xyMnZKS1IvU2l5eEN1Q20vQWJkYnJMbXk0WjlSdm1jMGdpclA4T0lLQWxBRWZ2TzV5Z2hSKy8vd1RpTFlzUQp1SllDM0V2UE16ZGdKUzdGR2FscnFLZzlPTCsxVzROY05yNWdveVdSUUJ0cktKaWlTZEJVWmVxb0RvSUY5NHpCCndGbzJJT1JFdXFqcU51M3diMWZIM3p1dGdtalFra3IxVjJhd3hmcExLWlROQWdNQkFBRT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg"}

CHANGELOG.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
# Code Editor Package for Visual Studio
22

3+
## [2.0.26] - 2025-12-16
4+
5+
Integration:
6+
7+
- Fix handling of asset-pipeline refresh-mode setting.
8+
9+
Project generation:
10+
11+
- Add `EnableOnDemandExcludedFolderLoading` capability when generating SDK-Style project.
12+
313
## [2.0.25] - 2025-09-16
414

515
Internal:
616

7-
- Fixes for release validation and release process
8-
17+
- Fixes for release validation and release process.
918

1019
## [2.0.24] - 2025-09-04
1120

@@ -33,7 +42,6 @@ Project generation:
3342
- Add `sln`/`csproj` file nesting (Visual Studio Code).
3443
- Improve SDK style project generation.
3544

36-
3745
## [2.0.22] - 2023-10-03
3846

3947
Integration:
0 Bytes
Binary file not shown.

Editor/FileUtility.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,27 @@ internal static class FileUtility
1414
public const char WinSeparator = '\\';
1515
public const char UnixSeparator = '/';
1616

17+
public static string GetAbsolutePath(string path)
18+
{
19+
#if UNITY_6000_5_OR_NEWER
20+
return UnityEditor.FileUtil
21+
.PathToAbsolutePath(path)
22+
.NormalizePathSeparators();
23+
#else
24+
return Path.GetFullPath(path);
25+
#endif
26+
}
27+
1728
public static string GetPackageAssetFullPath(params string[] components)
1829
{
1930
// Unity has special IO handling of Packages and will resolve those path to the right package location
20-
return Path.GetFullPath(Path.Combine("Packages", "com.unity.ide.visualstudio", Path.Combine(components)));
31+
return GetAbsolutePath(Path.Combine("Packages", "com.unity.ide.visualstudio", Path.Combine(components)));
2132
}
2233

2334
public static string GetAssetFullPath(string asset)
2435
{
25-
var basePath = Path.GetFullPath(Path.Combine(Application.dataPath, ".."));
26-
return Path.GetFullPath(Path.Combine(basePath, NormalizePathSeparators(asset)));
36+
var basePath = GetAbsolutePath(Path.Combine(Application.dataPath, ".."));
37+
return GetAbsolutePath(Path.Combine(basePath, NormalizePathSeparators(asset)));
2738
}
2839

2940
public static string NormalizePathSeparators(this string path)
@@ -59,13 +70,13 @@ internal static bool IsFileInProjectRootDirectory(string fileName)
5970
public static string MakeAbsolutePath(this string path)
6071
{
6172
if (string.IsNullOrEmpty(path)) { return string.Empty; }
62-
return Path.IsPathRooted(path) ? path : Path.GetFullPath(path);
73+
return Path.IsPathRooted(path) ? path : GetAbsolutePath(path);
6374
}
6475

6576
// returns null if outside of the project scope
6677
internal static string MakeRelativeToProjectPath(string fileName)
6778
{
68-
var basePath = Path.GetFullPath(Path.Combine(Application.dataPath, ".."));
79+
var basePath = GetAbsolutePath(Path.Combine(Application.dataPath, ".."));
6980
fileName = NormalizePathSeparators(fileName);
7081

7182
if (!Path.IsPathRooted(fileName))

Editor/ProjectGeneration/ProjectGeneration.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ private bool HasFilesBeenModified(IEnumerable<string> affectedFiles, IEnumerable
152152
private static bool ShouldSyncOnReimportedAsset(string asset)
153153
{
154154
// ".dll", ".asmdef"
155-
var extension = new FileInfo(asset).Extension;
155+
var extension = Path.GetExtension(asset);
156156
return extension == ".dll" || extension == ".asmdef";
157157
}
158158

@@ -996,7 +996,7 @@ internal string EscapedRelativePathFor(string file, out UnityEditor.PackageManag
996996
{
997997
// We have to normalize the path, because the PackageManagerRemapper assumes
998998
// dir seperators will be os specific.
999-
var absolutePath = Path.GetFullPath(path.NormalizePathSeparators());
999+
var absolutePath = FileUtility.GetAbsolutePath(path.NormalizePathSeparators());
10001000
path = SkipPathPrefix(absolutePath, projectDir);
10011001
}
10021002

Editor/ProjectGeneration/SdkStyleProjectGeneration.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ public SdkStyleProjectGeneration() : base(
3232

3333
internal static readonly string[] SupportedCapabilities = new string[]
3434
{
35-
"Unity",
35+
"Unity", // Allows to load the VSTU package and activate Unity specific features
36+
"EnableOnDemandExcludedFolderLoading", // Lazy-load excluded folders in VS (useful for huge projects with many side assets)
3637
};
3738

3839
internal static readonly string[] UnsupportedCapabilities = new string[]

Editor/Testing/TestAdaptor.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using System;
22

33
using UnityEditor.TestTools.TestRunner.Api;
4+
#if UNITY_6000_5_OR_NEWER
5+
using UnityEngine;
6+
#endif
47

58
namespace Microsoft.Unity.VisualStudio.Editor.Testing
69
{
@@ -31,7 +34,11 @@ public TestAdaptor(ITestAdaptor testAdaptor, int parent)
3134

3235
Type = testAdaptor.TypeInfo?.FullName;
3336
Method = testAdaptor.Method?.Name;
37+
#if UNITY_6000_5_OR_NEWER
38+
Assembly = testAdaptor.TypeInfo?.Assembly?.GetLoadedAssemblyPath();
39+
#else
3440
Assembly = testAdaptor.TypeInfo?.Assembly?.Location;
41+
#endif
3542

3643
Parent = parent;
3744
}

Editor/VisualStudioEditor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private static Dictionary<string, IVisualStudioInstallation> DiscoverInstallatio
6868
{
6969
return Discovery
7070
.GetVisualStudioInstallations()
71-
.ToDictionary(i => Path.GetFullPath(i.Path), i => i);
71+
.ToDictionary(i => FileUtility.GetAbsolutePath(i.Path), i => i);
7272
}
7373
catch (Exception ex)
7474
{
@@ -97,7 +97,7 @@ public void Initialize(string editorInstallationPath)
9797

9898
internal virtual bool TryGetVisualStudioInstallationForPath(string editorPath, bool lookupDiscoveredInstallations, out IVisualStudioInstallation installation)
9999
{
100-
editorPath = Path.GetFullPath(editorPath);
100+
editorPath = FileUtility.GetAbsolutePath(editorPath);
101101

102102
// lookup for well known installations
103103
if (lookupDiscoveredInstallations && _discoverInstallations.Result.TryGetValue(editorPath, out installation))

Editor/VisualStudioForWindowsInstallation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ public override bool Open(string path, int line, int column, string solution)
300300
string absolutePath = "";
301301
if (!string.IsNullOrWhiteSpace(path))
302302
{
303-
absolutePath = IOPath.GetFullPath(path);
303+
absolutePath = FileUtility.GetAbsolutePath(path);
304304
}
305305

306306
// We remove all invalid chars from the solution filename, but we cannot prevent the user from using a specific path for the Unity project

0 commit comments

Comments
 (0)