این مطلب، فرمت جدید فایل راهحل (.SLNX) را برای ویژوال استودیو معرفی میکند، که محدودیتهای فرمت موجود .SLN را ندارد.
چالشهای فرمت .SLN:
- ویرایشهای دستی طاقتفرسا، مستعد خطا.
- تداخلهای مکرر ادغام (merge conflicts) در محیطهای تیمی.
- پرگو و زائد، با GUIDهای تکراری و فراداده (metadata).
- عدم وجود یک فرمت فایل استاندارد، محدود کردن سازگاری.
بهبودهای فرمت .SLNX:
- ساختار XML قابل خواندن و ویرایش توسط انسان.
- حفظ فضای خالی و نظرات.
- ردپای حداقلی برای عملکرد بهینه.
- کاهش تداخلهای ادغام.
- سازگاری با ویژوال استودیو Dev 17.14 و نسخههای بعدی.
- همترازی با قراردادهای MSBuild.
ویژگیها و پیادهسازی کلیدی:
- ذخیره به صورت XML (.SLNX).
- پشتیبانی MSBuild، .NET CLI و C# Dev Kit.
- انتقال از .SLN از طریق .NET CLI یا ویژوال استودیو.
- توصیه میشود از داشتن هر دو فایل .SLN و .SLNX در یک مخزن (repository) خودداری شود.
- فیلترهای راهحل (solution filters) همچنان پشتیبانی میشوند، اما ممکن است نیاز به بهروزرسانی برای ارجاع به فایل جدید .SLNX داشته باشند.
- افزونهها (extensions) باید به کار خود ادامه دهند، اما آنهایی که مستقیماً فایلهای راهحل را ویرایش میکنند ممکن است نیاز به بهروزرسانی داشته باشند.
- Globbing فایل به دلیل نگرانیهای مربوط به عملکرد، پشتیبانی نمیشود.
- حداقل نسخههای ابزار پشتیبانی شده: .NET 9.0.200 SDK یا ویژوال استودیو/ابزارهای ساخت 17.13 یا نسخههای بعدی.
نکات برجسته پرسشهای متداول:
- فایلهای .SLNX، مانند .SLN، برای ویرایش باید بارگیری نشوند (unloaded).
- توصیه میشود پشتیبانیهای ابزارهای شخص ثالث تا نهایی شدن بیشتر فرمت انجام نشود.
- سریالساز متنبازی (open source serializer) برای آن در دسترس است: vs-solutionpersistence.
مثال از یک فایل .SLN قدیمی
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34511.98
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetMonitorWebApp", "DotNetMonitorWebApp\DotNetMonitorWebApp.csproj", "{1385B389-B20C-4D19-8FE0-85629BC41343}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1385B389-B20C-4D19-8FE0-85629BC41343}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1385B389-B20C-4D19-8FE0-85629BC41343}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1385B389-B20C-4D19-8FE0-85629BC41343}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1385B389-B20C-4D19-8FE0-85629BC41343}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C12E911E-FAA3-4ACE-B6BF-C3605E866483}
EndGlobalSection
EndGlobalمثال از یک فایل .SLNX جدید
<Solution>
<Project Path="DotNetMonitorWebApp\DotNetMonitorWebApp.csproj" />
</Solution>
نحوه انتقال از .SLN به .SLNX
استفاده از .NET CLI (برای پروژههای .NET)
dotnet SLN <YourSolutionFile.SLN> migrate
استفاده از ویژوال استودیو (توصیه شده برای همه زبانها)
- روی گره راهحل در Solution Explorer راست کلیک کنید.
- File -> Save Solution As… را انتخاب کنید.
- در منوی کشویی نوع فایل، Xml Solution File (*.SLNX) را انتخاب کنید.
- روی Save کلیک کنید.
مشاهده مطلب اصلی