Ошибка при создании консоли.приложение netcoreapp3.1 с VS2019

#visual-studio #.net-core #nuget

#visual-studio #.net-ядро #nuget

Вопрос:

Я создаю консоль HelloWorld .netcoreapp3.1 с помощью VS2019 16.7.5 после мастера, при сборке я получаю сообщение об ошибке

 >C:Program Filesdotnetsdk3.1.402SdksMicrosoft.NET.SdktargetsMicrosoft.PackageDependencyResolution.targets(241,5): error NETSDK1004: Assets file 'D:ConsoleApp2objproject.assets.json' not found. Run a NuGet package restore to generate this file.
  

Я пытался:

 PM> dotnet restore
  Determining projects to restore...
C:Program Filesdotnetsdk5.0.100-rc.1.20452.10NuGet.targets(130,5): error : 'Python 3.6.5' is not a valid version string. (Parameter 'value') [D:ConsoleApp2ConsoleApp2.sln]
  

Те же результаты с nuget restore .
Да, у меня есть Python 3.6.5, но даже при удалении из переменных среды я получаю эту ошибку.

Ответ №1:

Какая бы проблема у вас ни возникла, она, безусловно, зависит от конкретной машины, и поэтому я не могу дать вам ответ с какой-либо уверенностью или воспроизвести его на своей машине. Я знаю, вы сказали, что удалили переменные среды, но это мое лучшее предположение, поскольку MSBuild автоматически импортирует все переменные среды как свойства MSBuild.

Что вы можете сделать, это запустить dotnet restore -bl , который создаст msbuild.binlog файл. Откройте его с помощью https://www.msbuildlog.com /, и введите «python» в поле поиска. Вы узнаете, откуда берется строка и как она поступает в восстановление NuGet. Если оно указано как свойство в самом начале оценки проекта, если вы не передали эту строку в командной строке, это почти наверняка происходит из переменной среды.

Если вы клянетесь, что это не переменная среды, в окне просмотра binlog вы можете щелкнуть правой кнопкой мыши csproj и выбрать «предварительная обработка» или запустить dotnet msbuild -pp:pp.txt и открыть pp.txt в вашем любимом средстве просмотра xml / текста. Это csproj, в котором весь импорт MSBuild скопирован / вставлен в один файл. Если python не был введен через переменную среды, то он, должно быть, был получен из импорта, который будет виден в предварительно обработанном файле.