#.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 и запустите свое приложение в любой среде.