Skip to content

Commit 7127fcb

Browse files
IvanMurzakclaude
andauthored
fix(resolver): unstick legacy-folder + stale-flat duplicate-assembly state (#741)
* fix(resolver): make legacy-folder migration best-effort + auto-disable locked DLLs NuGetLegacyMigration.Run was atomic per folder via Directory.Delete(recursive: true) and aborted the entire restore on any IOException. When a legacy {Id}.{Version}/ folder contained a McpPlugin.dll that Unity had loaded into the editor AppDomain, the file was locked, the migration aborted, and downstream cleanup (NuGetPackageInstaller.RemoveStaleVersionDllsByStem) never ran — leaving stale flat-format DLLs (e.g. McpPlugin.6.2.0.dll) on disk to conflict with the canonical filename Unity wanted to load. Result: CS1704 duplicate-assembly errors with no path forward for the user. Switch the migration to best-effort: - TryRemoveDirectoryRecursive deletes per-file with try/catch; locked files no longer throw out of the loop, so unlocked siblings still get removed. - For each locked DLL, disable its PluginImporter (no platforms compatible) so the next domain reload unloads it and unlocks the OS handle. The next migration pass then completes the deletion. - Restore() no longer returns false on AbortedFileLock — proceeds to Install, which runs RemoveStaleVersionDllsByStem and extraction even when one folder survived this pass. Outcome.AbortedFileLock now means "at least one folder is still pending" rather than "abort everything"; the downstream cleanup is what unbricks the duplicate-assembly state in the user's report. Updated NuGetLegacyMigrationTests for the new log shape (warning, not error) and added a sibling-folder partial-success test. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(resolver): also disable PluginImporter when stale-flat sweep hits a file lock The user's CS1704 reproduction: stale McpPlugin.6.2.0.dll on disk alongside the canonical 6.2.1, both with assembly name "McpPlugin" — Unity loads one, locks it, and RemoveStaleVersionDllsByStem's TryDeleteFile silently logged and gave up. The sweep then reported success, the file survived, and the duplicate-assembly error never cleared. Pull the locked-file recovery path out of NuGetLegacyMigration (where it already existed as a private helper) into a shared NuGetPluginConfigurator.DisableImporter, and call it from the stale-flat sweep on IOException / UnauthorizedAccessException. The next domain reload unloads the disabled DLL, the file unlocks, and the next sweep pass deletes it. Two-cycle recovery instead of "stuck forever". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(resolver): drop version from DLL filenames; track version in manifest only Previously the install layout embedded the package version in the on-disk filename (e.g. McpPlugin.6.2.1.dll). Every package version bump required asmdef precompiledReferences edits across 4 asmdefs in lockstep, and a stale {stem}.<oldVersion>.dll co-existing with a fresh {stem}.<newVersion>.dll produced CS1704 duplicate-assembly errors that the user repeatedly hit. Move the version out of the filename and into the manifest: - Canonical install filename is now just {stem}.dll (the .nupkg's lib-folder filename, written verbatim). - NuGetInstallManifest's {packageId → version, dlls} entry is now the only source of truth for which version is installed; the resolver compares that against NuGetConfig.Packages to decide when a DLL needs to be replaced. - Asmdef precompiledReferences reference the unversioned filename and never need to be edited when a configured package version bumps — extraction overwrites the same file with the new version's bytes in place. Migration: - NuGetLegacyMigration.Run now sweeps two kinds of legacy state: the original {Id}.{Version}/ per-package directories AND every {stem}.{numericVersion}.dll at the install root. Both use the same best-effort + PluginImporter-disable recovery for locked files. - NuGetPackageRestorer.AllPackagesInstalled forces a full Restore() when it finds versioned-filename DLLs on disk OR versioned-filename entries in the manifest, so users transitioning from the previous layout get migrated on the first reload. - 41 committed DLLs + their .meta sidecars renamed via git mv. 4 asmdefs updated to reference unversioned filenames. .nuget-installed.json updated in lockstep (version-field stays as-is; dlls list now carries unversioned filenames). Tests: NuGetExtractorFlatLayoutTests, NuGetPackageInstallerStaleVersionFilesystemSweepTests fully rewritten for the new naming. NuGetLegacyMigrationTests gets two new cases for the versioned-filename sweep (root-level cleanup, mixed-state cleanup with both legacy folders + versioned files in one pass). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ui): wipe Library/ScriptAssemblies before package update install When the user clicks "Install Update" in UpdatePopupWindow, delete Library/ScriptAssemblies BEFORE handing off to Client.Add. Without this, if the post-install recompile hits any user-asmdef CS0246 (e.g. while the resolver is mid-migration off versioned filenames), Unity may skip the post-compile domain reload, leaving the OLD plugin AppDomain in memory and the new resolver code idle on disk — exactly the stale-state bug we just diagnosed in the Demo-MCP project. Atomic Directory.Delete first; fall back to per-file best-effort on IOException / UnauthorizedAccessException so a single locked file (the currently-loaded plugin DLLs are mmapped) doesn't abort the wipe. Surviving locked files get overwritten by Unity's post-install recompile. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(resolver): wipe ScriptAssemblies in Force Resolve menu + extract shared util The same stale-AppDomain problem the package update popup guards against also bites the manual "Force Resolve NuGet DLLs" menu: when user-asmdef compile errors prevent Unity from completing a domain reload, force-resolve runs against the OLD plugin assemblies in memory and any new resolver code on disk stays idle. Pull the wipe helper out of UpdatePopupWindow (where I had it as a private method) into a shared NuGetExtractor.DependencyResolver.ScriptAssembliesCache utility, and call it at the top of NuGetResolverMenu.ForceResolve. The update popup now delegates to the same helper. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(resolver): isolate DependencyResolver asmdef from Assets/Plugins so it compiles past duplicate-assembly conflicts The user reported a consumer project where Unity refused to start the resolver: legacy {Id}.{Version}/ folders + stale flat versioned DLLs in Assets/Plugins/NuGet caused Unity to compile every asmdef with -r: for both copies of McpPlugin / McpPlugin.Common (assembly name McpPlugin / McpPlugin.Common, two versions on disk). csc.exe fired CS1704 for *every* assembly in the project — including our DependencyResolver, even though its asmdef references zero McpPlugin DLLs in its own precompiledReferences. The DependencyResolver assembly never compiled, so its [InitializeOnLoad] never ran, so the migration sweep that *would* have removed the duplicates never executed. Chicken-and-egg. Set "overrideReferences": true with an empty precompiledReferences list so csc.exe only sees the BCL references for this assembly. Whatever duplicate-assembly chaos exists in Assets/Plugins/NuGet stays invisible to the resolver's own compile, the resolver loads cleanly, and its migration sweep can clean things up on the first reload. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor(resolver): apply simplify-pass cleanups across migration code - Remove NuGetPackageInstaller.RemoveStaleVersionDllsByStem and its test fixture: the broad versioned-filename sweep in NuGetLegacyMigration.Run now covers the same scenarios authoritatively, so the per-package sweep was a 35x-per-restore Directory.GetFiles call doing duplicate work for no incremental coverage. - Consolidate three identical TryDeleteFile copies into a single NuGetPluginConfigurator.TryDeleteFile (already the home of the related DisableImporter helper); both NuGetLegacyMigration and NuGetPackageInstaller now call it. - Rename NuGetLegacyMigration.Result fields to match the post-best-effort semantics: RemovedDirectories -> RemovedItems (phase 2 adds files too), FailedDirectory -> FirstFailedItem, FailureMessage -> FirstFailureMessage. Update tests in lockstep. - Trim verbose XML/inline comments that restated WHAT the code does: Run() doc shrunk from ~38 lines to 6, ScriptAssembliesCache class+method docs collapsed, NuGetPackageRestorer canonical-name comments reduced to one-line WHY each. BuildLockMessage reason is now non-nullable since every callsite has one (with a "(unknown)" fallback at the call site for nullable-flow safety). - Simplify the migration outcome-check in Restore() to `outcome != NoLegacyState`, replacing a two-arm OR. Net change: -378 / +69 lines (mostly comment trim + dead-code removal). No behavior change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(asmdef): add DependencyResolver to Editor asmdef references UpdatePopupWindow.cs and the menu now call ScriptAssembliesCache.Wipe() which lives in the DependencyResolver assembly. The Editor asmdef did not list it under references, so the compile broke with CS0234. Add "com.IvanMurzak.Unity.MCP.DependencyResolver" to references. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Update Unity NuGet packages: Add System.Numerics.Vectors, System.Reflection.Metadata, System.Runtime.CompilerServices.Unsafe, System.Text.Encoding.CodePages, System.Text.Encodings.Web, System.Text.Json, System.Threading.Channels, and System.Threading.Tasks.Extensions; remove obsolete versions and metadata files. * fix(resolver): strip UNITY_MCP_READY before package update / force-resolve Belt-and-braces guard against the wedge state where the resolver itself can't compile through some unrelated user-asmdef error: lift the ReadyDefine constant from NuGetDependencyResolver to NuGetConfig (so it can be referenced from outside the [InitializeOnLoad] class), add a public ScriptAssembliesCache.RemoveReadyDefine() helper that strips the define from every build target group, and call it alongside the existing ScriptAssembliesCache.Wipe() in both the package update popup and the Force Resolve menu. Effect: after the user clicks Update or Force Resolve, the next compile pass skips the main plugin asmdefs entirely (they're gated on UNITY_MCP_READY). Only the DependencyResolver assembly compiles, so even if every other asmdef in the project has CS0246 / CS1704 / etc., the resolver still gets a chance to run, finish migration, and re-add the define via NuGetDependencyResolver.EnsureScriptingDefine() — at which point the main plugin asmdefs compile against the now-healthy DLL set. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor(resolver): rename ScriptAssembliesCache to RecompileGate, add Reset() facade, consolidate define-iteration The class no longer matches its name: ScriptAssembliesCache implies it only touches Library/ScriptAssemblies, but it also manipulates PlayerSettings via RemoveReadyDefine. Both call sites (UpdatePopupWindow.StartPackageInstall, NuGetResolverMenu.ForceResolve) also always invoked Wipe() and RemoveReadyDefine() in lockstep — Reviewer flagged the duplication and the misnomer. - Rename class+file to RecompileGate (git mv preserves history+meta GUID) to match the actual responsibility: gating Unity's next compile to include only the resolver itself. - Add public Reset() facade that does Wipe() + RemoveReadyDefine() so callers can't accidentally do half the operation. - Move EnsureScriptingDefine + TryAddDefine off NuGetDependencyResolver onto RecompileGate.EnsureReadyDefine (paired with RemoveReadyDefine). Both now share a single ForEachTarget(Func<NamedBuildTarget, bool>) helper that iterates BuildTargetGroup values + the distinct NamedBuildTarget.Server — the iteration boilerplate that was mirrored across both methods is now declared once. - Trim verbose call-site comment blocks to a single WHY sentence each. Net: -190 / +178 lines, mostly comment trim + dedupe. NuGetDependencyResolver loses ~65 lines of editor-build-target plumbing and is now focused purely on the [InitializeOnLoad] flow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Refactor NuGet packages: Replace outdated assemblies with updated versions - Removed obsolete System.Collections.Immutable.7.0.0.dll and its metadata. - Added new System.Collections.Immutable.dll and its metadata. - Removed obsolete System.ComponentModel.Annotations.5.0.0.dll and its metadata. - Added new System.ComponentModel.Annotations.dll and its metadata. - Removed obsolete System.Diagnostics.DiagnosticSource.8.0.1.dll and its metadata. - Added new System.Diagnostics.DiagnosticSource.dll and its metadata. - Removed obsolete System.IO.Pipelines.8.0.0.dll and its metadata. - Added new System.IO.Pipelines.dll and its metadata. - Added new System.Memory.dll and its metadata. - Added new System.Numerics.Vectors.dll and its metadata. - Removed obsolete System.Reflection.Metadata.7.0.0.dll and its metadata. - Added new System.Reflection.Metadata.dll and its metadata. - Removed obsolete System.Runtime.CompilerServices.Unsafe.6.1.2.dll and its metadata. - Added new System.Runtime.CompilerServices.Unsafe.dll and its metadata. - Removed obsolete System.Text.Encoding.CodePages.7.0.0.dll and its metadata. - Added new System.Text.Encoding.CodePages.dll and its metadata. - Removed obsolete System.Text.Encodings.Web.8.0.0.dll and its metadata. - Added new System.Text.Encodings.Web.dll and its metadata. - Removed obsolete System.Text.Json.8.0.5.dll and its metadata. - Added new System.Text.Json.dll and its metadata. - Removed obsolete System.Threading.Channels.8.0.0.dll and its metadata. - Added new System.Threading.Channels.dll and its metadata. - Added new System.Threading.Tasks.Extensions.dll and its metadata. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 0165384 commit 7127fcb

727 files changed

Lines changed: 6858 additions & 7467 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Unity-MCP-Plugin/Assets/Plugins/NuGet/.nuget-installed.json

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,79 +3,79 @@
33
"com.IvanMurzak.McpPlugin": {
44
"version": "6.2.1",
55
"dlls": [
6-
"McpPlugin.6.2.1.dll"
6+
"McpPlugin.dll"
77
]
88
},
99
"com.IvanMurzak.McpPlugin.Common": {
1010
"version": "6.2.1",
1111
"dlls": [
12-
"McpPlugin.Common.6.2.1.dll"
12+
"McpPlugin.Common.dll"
1313
]
1414
},
1515
"com.IvanMurzak.ReflectorNet": {
1616
"version": "5.1.1",
1717
"dlls": [
18-
"ReflectorNet.5.1.1.dll"
18+
"ReflectorNet.dll"
1919
]
2020
},
2121
"Microsoft.AspNetCore.Connections.Abstractions": {
2222
"version": "8.0.15",
2323
"dlls": [
24-
"Microsoft.AspNetCore.Connections.Abstractions.8.0.15.dll"
24+
"Microsoft.AspNetCore.Connections.Abstractions.dll"
2525
]
2626
},
2727
"Microsoft.AspNetCore.Http.Connections.Client": {
2828
"version": "8.0.15",
2929
"dlls": [
30-
"Microsoft.AspNetCore.Http.Connections.Client.8.0.15.dll"
30+
"Microsoft.AspNetCore.Http.Connections.Client.dll"
3131
]
3232
},
3333
"Microsoft.AspNetCore.Http.Connections.Common": {
3434
"version": "8.0.15",
3535
"dlls": [
36-
"Microsoft.AspNetCore.Http.Connections.Common.8.0.15.dll"
36+
"Microsoft.AspNetCore.Http.Connections.Common.dll"
3737
]
3838
},
3939
"Microsoft.AspNetCore.SignalR.Client": {
4040
"version": "8.0.15",
4141
"dlls": [
42-
"Microsoft.AspNetCore.SignalR.Client.8.0.15.dll"
42+
"Microsoft.AspNetCore.SignalR.Client.dll"
4343
]
4444
},
4545
"Microsoft.AspNetCore.SignalR.Client.Core": {
4646
"version": "8.0.15",
4747
"dlls": [
48-
"Microsoft.AspNetCore.SignalR.Client.Core.8.0.15.dll"
48+
"Microsoft.AspNetCore.SignalR.Client.Core.dll"
4949
]
5050
},
5151
"Microsoft.AspNetCore.SignalR.Common": {
5252
"version": "8.0.15",
5353
"dlls": [
54-
"Microsoft.AspNetCore.SignalR.Common.8.0.15.dll"
54+
"Microsoft.AspNetCore.SignalR.Common.dll"
5555
]
5656
},
5757
"Microsoft.AspNetCore.SignalR.Protocols.Json": {
5858
"version": "8.0.15",
5959
"dlls": [
60-
"Microsoft.AspNetCore.SignalR.Protocols.Json.8.0.15.dll"
60+
"Microsoft.AspNetCore.SignalR.Protocols.Json.dll"
6161
]
6262
},
6363
"Microsoft.Bcl.AsyncInterfaces": {
6464
"version": "8.0.0",
6565
"dlls": [
66-
"Microsoft.Bcl.AsyncInterfaces.8.0.0.dll"
66+
"Microsoft.Bcl.AsyncInterfaces.dll"
6767
]
6868
},
6969
"Microsoft.Bcl.Memory": {
7070
"version": "10.0.3",
7171
"dlls": [
72-
"Microsoft.Bcl.Memory.10.0.3.dll"
72+
"Microsoft.Bcl.Memory.dll"
7373
]
7474
},
7575
"Microsoft.Bcl.TimeProvider": {
7676
"version": "8.0.1",
7777
"dlls": [
78-
"Microsoft.Bcl.TimeProvider.8.0.1.dll"
78+
"Microsoft.Bcl.TimeProvider.dll"
7979
]
8080
},
8181
"Microsoft.CodeAnalysis.Analyzers": {
@@ -85,175 +85,175 @@
8585
"Microsoft.CodeAnalysis.Common": {
8686
"version": "4.8.0",
8787
"dlls": [
88-
"Microsoft.CodeAnalysis.4.8.0.dll"
88+
"Microsoft.CodeAnalysis.dll"
8989
]
9090
},
9191
"Microsoft.CodeAnalysis.CSharp": {
9292
"version": "4.8.0",
9393
"dlls": [
94-
"Microsoft.CodeAnalysis.CSharp.4.8.0.dll"
94+
"Microsoft.CodeAnalysis.CSharp.dll"
9595
]
9696
},
9797
"Microsoft.Extensions.Caching.Abstractions": {
9898
"version": "8.0.0",
9999
"dlls": [
100-
"Microsoft.Extensions.Caching.Abstractions.8.0.0.dll"
100+
"Microsoft.Extensions.Caching.Abstractions.dll"
101101
]
102102
},
103103
"Microsoft.Extensions.Configuration.Abstractions": {
104104
"version": "8.0.0",
105105
"dlls": [
106-
"Microsoft.Extensions.Configuration.Abstractions.8.0.0.dll"
106+
"Microsoft.Extensions.Configuration.Abstractions.dll"
107107
]
108108
},
109109
"Microsoft.Extensions.DependencyInjection": {
110110
"version": "8.0.1",
111111
"dlls": [
112-
"Microsoft.Extensions.DependencyInjection.8.0.1.dll"
112+
"Microsoft.Extensions.DependencyInjection.dll"
113113
]
114114
},
115115
"Microsoft.Extensions.DependencyInjection.Abstractions": {
116116
"version": "8.0.2",
117117
"dlls": [
118-
"Microsoft.Extensions.DependencyInjection.Abstractions.8.0.2.dll"
118+
"Microsoft.Extensions.DependencyInjection.Abstractions.dll"
119119
]
120120
},
121121
"Microsoft.Extensions.Diagnostics.Abstractions": {
122122
"version": "8.0.1",
123123
"dlls": [
124-
"Microsoft.Extensions.Diagnostics.Abstractions.8.0.1.dll"
124+
"Microsoft.Extensions.Diagnostics.Abstractions.dll"
125125
]
126126
},
127127
"Microsoft.Extensions.Features": {
128128
"version": "8.0.15",
129129
"dlls": [
130-
"Microsoft.Extensions.Features.8.0.15.dll"
130+
"Microsoft.Extensions.Features.dll"
131131
]
132132
},
133133
"Microsoft.Extensions.FileProviders.Abstractions": {
134134
"version": "8.0.0",
135135
"dlls": [
136-
"Microsoft.Extensions.FileProviders.Abstractions.8.0.0.dll"
136+
"Microsoft.Extensions.FileProviders.Abstractions.dll"
137137
]
138138
},
139139
"Microsoft.Extensions.Hosting.Abstractions": {
140140
"version": "8.0.1",
141141
"dlls": [
142-
"Microsoft.Extensions.Hosting.Abstractions.8.0.1.dll"
142+
"Microsoft.Extensions.Hosting.Abstractions.dll"
143143
]
144144
},
145145
"Microsoft.Extensions.Logging": {
146146
"version": "8.0.1",
147147
"dlls": [
148-
"Microsoft.Extensions.Logging.8.0.1.dll"
148+
"Microsoft.Extensions.Logging.dll"
149149
]
150150
},
151151
"Microsoft.Extensions.Logging.Abstractions": {
152152
"version": "8.0.3",
153153
"dlls": [
154-
"Microsoft.Extensions.Logging.Abstractions.8.0.3.dll"
154+
"Microsoft.Extensions.Logging.Abstractions.dll"
155155
]
156156
},
157157
"Microsoft.Extensions.Options": {
158158
"version": "8.0.2",
159159
"dlls": [
160-
"Microsoft.Extensions.Options.8.0.2.dll"
160+
"Microsoft.Extensions.Options.dll"
161161
]
162162
},
163163
"Microsoft.Extensions.Primitives": {
164164
"version": "8.0.0",
165165
"dlls": [
166-
"Microsoft.Extensions.Primitives.8.0.0.dll"
166+
"Microsoft.Extensions.Primitives.dll"
167167
]
168168
},
169169
"R3": {
170170
"version": "1.3.0",
171171
"dlls": [
172-
"R3.1.3.0.dll"
172+
"R3.dll"
173173
]
174174
},
175175
"System.Buffers": {
176176
"version": "4.5.1",
177177
"dlls": [
178-
"System.Buffers.4.5.1.dll"
178+
"System.Buffers.dll"
179179
]
180180
},
181181
"System.Collections.Immutable": {
182182
"version": "7.0.0",
183183
"dlls": [
184-
"System.Collections.Immutable.7.0.0.dll"
184+
"System.Collections.Immutable.dll"
185185
]
186186
},
187187
"System.ComponentModel.Annotations": {
188188
"version": "5.0.0",
189189
"dlls": [
190-
"System.ComponentModel.Annotations.5.0.0.dll"
190+
"System.ComponentModel.Annotations.dll"
191191
]
192192
},
193193
"System.Diagnostics.DiagnosticSource": {
194194
"version": "8.0.1",
195195
"dlls": [
196-
"System.Diagnostics.DiagnosticSource.8.0.1.dll"
196+
"System.Diagnostics.DiagnosticSource.dll"
197197
]
198198
},
199199
"System.IO.Pipelines": {
200200
"version": "8.0.0",
201201
"dlls": [
202-
"System.IO.Pipelines.8.0.0.dll"
202+
"System.IO.Pipelines.dll"
203203
]
204204
},
205205
"System.Memory": {
206206
"version": "4.5.5",
207207
"dlls": [
208-
"System.Memory.4.5.5.dll"
208+
"System.Memory.dll"
209209
]
210210
},
211211
"System.Numerics.Vectors": {
212212
"version": "4.4.0",
213213
"dlls": [
214-
"System.Numerics.Vectors.4.4.0.dll"
214+
"System.Numerics.Vectors.dll"
215215
]
216216
},
217217
"System.Reflection.Metadata": {
218218
"version": "7.0.0",
219219
"dlls": [
220-
"System.Reflection.Metadata.7.0.0.dll"
220+
"System.Reflection.Metadata.dll"
221221
]
222222
},
223223
"System.Runtime.CompilerServices.Unsafe": {
224224
"version": "6.1.2",
225225
"dlls": [
226-
"System.Runtime.CompilerServices.Unsafe.6.1.2.dll"
226+
"System.Runtime.CompilerServices.Unsafe.dll"
227227
]
228228
},
229229
"System.Text.Encoding.CodePages": {
230230
"version": "7.0.0",
231231
"dlls": [
232-
"System.Text.Encoding.CodePages.7.0.0.dll"
232+
"System.Text.Encoding.CodePages.dll"
233233
]
234234
},
235235
"System.Text.Encodings.Web": {
236236
"version": "8.0.0",
237237
"dlls": [
238-
"System.Text.Encodings.Web.8.0.0.dll"
238+
"System.Text.Encodings.Web.dll"
239239
]
240240
},
241241
"System.Text.Json": {
242242
"version": "8.0.5",
243243
"dlls": [
244-
"System.Text.Json.8.0.5.dll"
244+
"System.Text.Json.dll"
245245
]
246246
},
247247
"System.Threading.Channels": {
248248
"version": "8.0.0",
249249
"dlls": [
250-
"System.Threading.Channels.8.0.0.dll"
250+
"System.Threading.Channels.dll"
251251
]
252252
},
253253
"System.Threading.Tasks.Extensions": {
254254
"version": "4.5.4",
255255
"dlls": [
256-
"System.Threading.Tasks.Extensions.4.5.4.dll"
256+
"System.Threading.Tasks.Extensions.dll"
257257
]
258258
}
259259
}

Unity-Tests/6000.5.0b3/Assets/Plugins/NuGet/com.IvanMurzak.McpPlugin.Common.6.2.1/McpPlugin.Common.dll renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/McpPlugin.Common.dll

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/McpPlugin.Common.6.2.1.dll.meta renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/McpPlugin.Common.dll.meta

File renamed without changes.

Unity-Tests/6000.5.0b3/Assets/Plugins/NuGet/com.IvanMurzak.McpPlugin.6.2.1/McpPlugin.dll renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/McpPlugin.dll

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/McpPlugin.6.2.1.dll.meta renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/McpPlugin.dll.meta

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Connections.Abstractions.8.0.15.dll renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Connections.Abstractions.dll

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Connections.Abstractions.8.0.15.dll.meta renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Connections.Abstractions.dll.meta

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Http.Connections.Client.8.0.15.dll renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Http.Connections.Client.dll

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Http.Connections.Client.8.0.15.dll.meta renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Http.Connections.Client.dll.meta

File renamed without changes.

Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Http.Connections.Common.8.0.15.dll renamed to Unity-MCP-Plugin/Assets/Plugins/NuGet/Microsoft.AspNetCore.Http.Connections.Common.dll

File renamed without changes.

0 commit comments

Comments
 (0)