Основное приложение ASP.NET(.NET Framework) для Windows x64 только ошибка в project.assets.json
Я хочу упростить свою настройку в приложении ASP.NET Core Web Application (.NET Framework) с использованием VS 2017.
Я уже знаю, что мой сайт будет работать под Windows/IIS в среде x64 и .NET 4.6.2. В этом и непредвиденном будущем у этого приложения нет никаких шансов использовать любую другую среду от разработчика до производства.
Итак, мне нужны только режимы Debug x64 и Release x64. (AnyCPU и x86 не нужны!), Поэтому я пошел дальше и удалил все остальные настройки из проекта.
Теперь при компиляции я получаю следующую ошибку:
C:\Projects\MyProject\My.Website\obj\project.assets.json 'не имеет цели для .NETFramework, версия = v4.6.2/win7-x64'.
Убедитесь, что вы восстановили этот проект для TargetFramework = 'net462' и RuntimeIdentifier = 'win7-x64'. MD.Website C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
Я занимаюсь разработкой на Windows 7, я не уверен, как это исправить. Любая идея?
Ответы
Ответ 1
По какой-то причине <TargetFramework>
в моем файле .csproj
был единственным. Я добавил "s" и стал "TargetFramework s", который работал:
<PropertyGroup>
<TargetFrameworks>net462</TargetFrameworks>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
Ответ 2
Я не изменил свой TargetFramework
, я запустил в консоли диспетчера пакетов команду:
dotnet restore
И это сработало! (Я использую VS2017, и я делаю приложение ядра .net, указывающее на .net-инфраструктуру)
Ответ 3
Я вручную изменил свою версию с x86 на x64. В этом случае просто восстановление пакетов из Visual Studio не будет работать, но закрытие Visual Studio, удаление Project.assets.json, перезапуск Visual Studio и перестройка проекта работали для меня. Я оставил <TargetFramework>
сингулярный.
Командная строка nuget restore ...
также может работать.
Ответ 4
У меня возникла эта проблема при попытке опубликовать консольное приложение dotnetcore в локальной папке после обновления до версии 2.0.
После попытки удаления папок и восстановления dotnet и убедитесь, что все настройки в приложении и сборке были 2_0 безрезультатно. Я понял, что мой профиль публикации по-прежнему нацелен на 1.1, хотя 2.0 показывался как выбранный, когда я входил в редактирование профиля, он показал 1.1 в резюме публикации. Поэтому я повторно выбрал 2.0 в раскрывающемся списке, и он обновил сводку, чтобы показать 2.0, и все это работало нормально.
Ответ 5
По какой-то причине <RuntimeIdentifier>
в моем файле .csproj
отсутствовал.
Добавление его решило эту проблему для меня:
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<Platforms>AnyCPU;x64</Platforms>
<LangVersion>7.3</LangVersion>
</PropertyGroup>
Ответ 6
У меня есть ядро приложения .net, указывающее на .net framework 4.6.1 в VS2017, которое я пытался опубликовать. Я изменил цель своей платформы с x86 на x64 и начал получать эту ошибку, когда я попытался опубликовать снова, но у меня не было никаких проблем для сборки. Я только что открыл настройки профиля публикации, и все выглядело нормально (целевое время выполнения было win7-x64), но этого было достаточно, чтобы моя публикация начала работать должным образом.
Ответ 7
Проверьте фактический файл профиля публикации публикации, которую вы пытаетесь запустить. В нашем случае у нас есть набор проектов, которые должны быть разделены между Core и обычным asp.net, поэтому мы ориентируемся на Core 1.1 и устанавливаем версию времени выполнения на 4.6.1. После запуска всех проектов и обновления их до целевой версии 4.7, я начал получать эту ошибку при публикации (фактические сборки работали нормально, как и отладка localhost, была опубликована публикация).
Проверяя фактический файл "widgets - Web Deploy.pubxml", я нашел его внизу:
<_DestinationType>AzureWebSite</_DestinationType>
<TargetFramework>net461</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
</Project>
Как уже упоминали другие в этой теме, простое открытие листа свойств профиля публикации покажет вам, в моем случае, что целевая среда была нацелена на 4,7 (что было точным для всех участвующих проектов, но не отражало фактическую значение в файле)... Мне все еще нужно было нажать кнопку Сохранить, чтобы получить базовый файл .pubxml, который будет фактически обновлен с правильным значением. Возможно, вы также можете редактировать этот файл вручную, если вы чувствуете, что склонны.
Этот сводил меня с ума. :)
Ответ 8
Как отметил Борис, в моем случае проблема была в PublishProfiles.
Сначала я добавил в свой файл .csproj
следующее (как упомянуто в посте выше BluE):
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<Platforms>AnyCPU;x64</Platforms>
<LangVersion>7.3</LangVersion>
</PropertyGroup>
и затем я открыл свой PublishProfile
![Web Publish Panel]()
а затем нажмите на ссылку Изменить:
![Edit Profile]()
и, наконец, в открывшемся диалоговом окне установите TargetFramework для своего проекта Framework и TargetRungime на win-x64, а затем нажмите Сохранить!
![enter image description here]()
Вот и все!
Теперь, если вы попытаетесь опубликовать свой проект с использованием этого профиля, он должен работать отлично.
Надеюсь, это кому-нибудь поможет.