Не удается запустить .Приложение NET Core в командной строке на Mac

#.net #visual-studio #visual-studio-mac

#.net #visual-studio #visual-studio-mac

Вопрос:

Итак, я новичок в .NET и работаю над приложением командной строки. Мне нужно проверить передачу аргументов, что, я полагаю, невозможно сделать в Visual Studio. Поэтому, когда я захожу в терминал OS X, перехожу в папку проекта и запускаю dotnet run, он выдает эту ошибку:

 error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks.
 

С какой стати он пытается использовать.NET framework? В любом случае, это недоступно на Mac. Оно должно использоваться.СЕТЕВОЕ ядро. Каким-то образом он запускается в режиме отладки Visual Studio, но в командной строке он продолжает пытаться запустить его в .NET framework. Это должно быть кроссплатформенное приложение командной строки, поэтому оно должно быть .NET core. Как мне проверить ввод аргумента командной строки моего приложения?

Комментарии:

1. Вероятно, вы используете пакет NuGet, который зависит от .NET Framework. Вы можете выполнить поиск 4.7.2 в файлах вашего проекта для получения дополнительной информации.

2. @JoelFan У меня были установлены EPPlus и IronPython через NuGet. Я удалил их, и проблема все еще остается. В packages.config я обнаружил <package id="DynamicLanguageRuntime" version="1.3.0" targetFramework="net472" /> <package id="System.ComponentModel.Annotations" version="5.0.0" targetFramework="net472" /> , почему встроенная динамическая среда выполнения использует 4.72, если это приложение .NET core на Mac, которое даже не может его запустить? Как вообще работает отладчик в Visual Studio? Безопасно ли удалять эти пакеты, поскольку я их не устанавливал, и кажется, что они встроены?

3. Проект .NET Core не будет использоваться packages.config , поэтому мне интересно, как именно вы создали этот проект.

4. @SuperJayRay, ты можешь сохранить свой код, затем перейти в новую папку и заново создать решение с нуля? Затем скопируйте файлы вашего кода по мере необходимости (только файлы C # … не копируйте файлы проекта, конфигурации или sln из вашей старой копии). Обратите пристальное внимание на то, что вы выбираете, когда создаете новое решение и проекты.

Ответ №1:

В вашем проекте есть ссылка на .NET Framework версии 4.7, которая несовместима с используемой вами ОС. Вам необходимо либо перенести свой проект, написанный в версии 4.7, в стандартную библиотеку .NET, либо в библиотеку классов .net core. Затем обратитесь к тому же из вашего приложения .net core и запустите свое приложение в любой среде.