Спасибо @omajid за вашу помощь. Вот что у меня работает:
В каждом проекте root папка:
dotnet restore
dotnet build --configuration Release
dotnet publish --no-restore -r win-x64 -c Release -o c:\somwhere /p:PublishSingleFile=true /p:DebugType=None
Вышеупомянутое требует, чтобы мы добавили идентификатор среды выполнения в файл проекта:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
<AssemblyVersion>0.0.2.0</AssemblyVersion>
</PropertyGroup>
К сожалению, восстановление с идентификатором времени выполнения не сработало (те же ошибки, что и в моей исходной проблеме ), что, вероятно, означало бы, что идентификатор среды выполнения не нужен в файле проекта:
dotnet restore --runtime win-x64
Мое первоначальное наблюдение было неверным! Источники Nuget НЕ вызывали проблем с восстановлением в publish
.... это был идентификатор среды выполнения. Я до сих пор не знаю, почему ошибка проявилась именно так ... но вызов dotnet publish
с переключателем --no-restore
, похоже, сделал это за меня.
Остается проблема, почему dotnet restore --runtime win-x64
не работает.