راستش اینا که سهله، قبلا مقالات جامعتری رو مطالعه کردم و ایشوهای sourcelink داخل ریپوی خودش و dotnetsdk رو زیرُ رو کردم.
در کل چون این یه موضوعی هست که به چندین تیم و محصول وابسته هست (تیم های dotnet SDK و VS و Nuget و SourceLink) و نیاز به هماهنگی هست متاسفانه خیلی کند پیش میرن و در حال حاضر پلن کردند واسه milestone دات نت 6 که انشالا برطرف بشه
واقعیت اینه که این قابلیت آنچنان stable و قابل استفاده نیست. توی ورژنهای مختلف sdk مشکلات متعددی براش پیش اومده و workaroundهای متفاوتی هم براش دادن.
این موارد رو میشه توی issue معروف این قضیه که بعد از گذشت 3 سال هنوز باز هست مشاهده کنین. انصافا من از بعضی از workaround هاش هم جواب گرفتم ولی همچنان راه سر راست و درست و درمون نداره مگر با اون کدی که فرستادم.
پکیج EFCoreSecondLevelCacheInterceptor رو روی چندین سیستم هم امتحان کردم و جواب نداد و نهایتا با قرار دادن کد زیر توی csproj (که یکی از workaroundهای همون issue هست) جواب داد. البته اونم رو فقط رو net5.0!
<!-- https://github.com/dotnet/sdk/issues/1458#issuecomment-420456386 --> <Target Name="_ResolveCopyLocalNuGetPackagePdbsAndXml" Condition="$(CopyLocalLockFileAssemblies) == true" AfterTargets="ResolveReferences"> <ItemGroup> <ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).pdb')" Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)' != '' and Exists('%(RootDir)%(Directory)%(Filename).pdb')" /> <ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).xml')" Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)' != '' and Exists('%(RootDir)%(Directory)%(Filename).xml')" /> </ItemGroup> </Target>