netstandard2.1 enable MSB3277;1591 true false true true 11 GPL-3.0-or-later $(ADOFAI_PATH)\MelonLoader\net35\0Harmony.dll $(ADOFAI_PATH)\UserLibs\O5Kit.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\Assembly-CSharp.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\Assembly-CSharp-firstpass.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\DOTween.dll $(ADOFAI_PATH)\MelonLoader\net35\MelonLoader.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\RDTools.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\SkyHook.Unity.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\Unity.TextMeshPro.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.AssetBundleModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.AudioModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.CoreModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.IMGUIModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.ParticleSystemModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.TextRenderingModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.InputLegacyModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.InputModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.UI.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.UIElementsModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.UIModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.VideoModule.dll $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\Newtonsoft.Json.dll (); foreach (var member in members.Elements("member")) { var nameAttr = member.Attribute("name")?.Value; if (string.IsNullOrEmpty(nameAttr)) continue; // XML 주석 형식: T:네임스페이스.타입, M:메서드, P:프로퍼티, F:필드/열거형, E:이벤트 등 int colonIndex = nameAttr.IndexOf(':'); string fullName = colonIndex >= 0 ? nameAttr.Substring(colonIndex + 1) : nameAttr; if (!fullName.StartsWith(prefix, StringComparison.Ordinal) && !fullName.Equals(TargetNamespace, StringComparison.Ordinal)) { toRemove.Add(member); } } foreach (var elem in toRemove) { elem.Remove(); } doc.Save(XmlFilePath); Log.LogMessage(Microsoft.Build.Framework.MessageImportance.High, $"[FilterXmlDoc] Kept '{TargetNamespace}' namespace docs. Removed {toRemove.Count} other members."); } } catch (Exception ex) { Log.LogWarning($"[FilterXmlDoc] XML filtering failed: {ex.Message}"); } ]]> <_XmlDocPath Condition="'$(_XmlDocPath)' == '' and Exists('$(TargetDir)$(TargetName).xml')">$(TargetDir)$(TargetName).xml <_XmlDocPath Condition="'$(_XmlDocPath)' == '' and Exists('$(DocumentationFile)')">$(DocumentationFile)