Файл объектов obj\project.assets.json не имеет цели - VS2017
Использование Visual Studio 2017, AspNetCore 1.1.2
Внезапно я получаю следующую ошибку, когда пытаюсь опубликовать (Release build) любой проект в решении:
Файл активов 'C:\example\obj\project.assets.json' не имеет цели для ".NETFramework, Version = v4.5.2/win7-x86. Убедитесь, что восстановление выполнено и что вы включили 'net452' в TargetFrameworks для своего проект. Вам также может потребоваться включить" win7-x86" в проект RuntimeIdentifiers.
Вы проверили файлы project.assets.json
, у меня есть:
"targets": {
".NETFramework,Version=v4.5.2": {
и
"runtimes": {
"win7-x86": {
"#import": []
}
В файлах *.csproj у меня есть:
<PropertyGroup>
<TargetFramework>net452</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
Не внесены изменения в конфигурацию в проектах. Единственное, что я обновил VS2017 до последней версии сегодня, 15.6.3. Может ли это вызвать проблему?
Ответы
Ответ 1
Согласно блогу Microsoft (который, как ни странно, моя учетная запись не имеет прав на публикацию сообщений), это не ошибка, и она полностью вызвана ReSharper. Если вы отключите это, проблема исчезнет.
Ошибка, одна проблема: я получаю эту ошибку, и у меня нет ReSharper.
После долгих поисков я нашел причину, по которой я получил ошибку в своем проекте .Net Core, который был обновлен с версии 1.0 до 2.1.
При запуске моего проекта в режиме отладки или выпуска все работало нормально, но когда я попытался опубликовать в Azure, я получил эту ошибку:
Assets file '(mikesproject)\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.0'. Ensure that restore has run and that you have included 'netcoreapp2.0' in the TargetFrameworks for your project
Assets file '(mikesproject)\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.0'. Ensure that restore has run and that you have included 'netcoreapp2.0' in the TargetFrameworks for your project
.
Хотя я обновил версию .Net Core до 2.1 в Project\Properties и обновил различные пакеты nuget, было одно место, которое не подхватило это изменение - файл профиля публикации.
Мне нужно было перейти в папку Properties\PublishProfiles
в моем решении, открыть файл .pubxml, относящийся к способу публикации в Azure, и изменить этот параметр с netcoreapp2.0
на netcoreapp2.1
:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
. . .
<TargetFramework>netcoreapp2.0</TargetFramework>
. . .
</PropertyGroup>
</Project>
Смешно, а?
Хотелось бы, чтобы сообщения об ошибках Microsoft давали некоторую подсказку об источнике подобных проблем.
Ответ 2
По этот поток
Удаление папки "C:\Program Files\dotnet\sdk\2.1.102" решило проблему.
Ответ 3
Перезапуск Visual Studio решил проблему для меня.
Ответ 4
Щелкните правой кнопкой мыши по файлу проекта и выберите "Выгрузить". Затем щелкните правой кнопкой мыши по проекту и перезагрузите.
Ответ 5
Мне удалось исправить мои проблемы с помощью dotnet restore mysolution.sln
после получения последних версий Visual Studio 2017 и .NET Core 2
Ответ 6
Для меня проблема заключалась в том, что один из моих каналов NuGet не работал, поэтому пакет не обновлялся должным образом. Только когда я запустил восстановление пакета NuGet непосредственно в решении, я не увидел никаких сообщений об ошибках, связанных с отключением моего канала NuGet.