Я пытаюсь создать приложение ядра dotnet, которое связывается с пользовательским ядром corefx.Я планирую внести некоторые изменения в System.Collections, но сейчас я просто пытаюсь заставить систему работать правильно.Похоже, что мои правки в исходные файлы не включаются в окончательные пакеты, как я ожидал.Кроме того, номера версий corefx меняются, даже если я не извлекаю явно (т.е. git pull) из хранилища.
Я выполняю следующие шаги (описанные в corefx dogfooding документах ):
<packageSources>
<clear />
<add key="local coreclr" value="c:\<path>\corefx\bin\packages\Release" />
</packageSources>
- добавить ссылку на пакет в мой Test.csproj
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PackageConflictPreferredPackages>Microsoft.Private.CoreFx.NETCoreApp.4.6.0-preview1-27013-1;runtime.win-x64.Microsoft.Private.CoreFx.NETCoreApp.4.6.0-preview1-27013-1;$(PackageConflictPreferredPackages)</PackageConflictPreferredPackages>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Private.CoreFx.NETCoreApp" Version="4.6.0-preview1-27013-1" />
</ItemGroup>
Две вещи идут не так, как ожидалось:
- Я изменилDictionary.cs для создания исключения в конструкторе по умолчанию, но оно не генерируется в моей простой тестовой программе, когда он создает словарь
- в corefx \ bin \ packages \ Release, версия пакета увеличивается до Microsoft.Private.CoreFx.NETCoreApp.4.6.0-preview1- 27014 -1.nupkg, тогда как вывчера это было 27013
Кажется, что система сборки загружает все, что есть последние биты, и игнорирует мой источник.