2016-09-27 4 views
2

Если я использую Visual Studio 2015 Update 3 для создания нового приложения ASP.NET Core MVC, он работает отлично. Однако, если я сказал, приложение и обновлять это пакеты NuGet для ASP.NET Ядра 1.0.1, я получаю ошибки построения:ASP.NET Core 1.0.1 разбивает проекты

Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. Possible cause 
1. The project has not been restored or restore failed - run `dotnet restore` 
2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section. 
3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries. 

Является ли это ошибка, или что-то экологическое?

Добавление:

Бревно от восстановления выглядит отлично:

log : Restoring packages for <path to project>\project.json... 
log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in E:\Software Projects\subq\src\SubQ.API\project.json... 
log : Lock file has not changed. Skipping lock file write. Path: <path to project>\project.lock.json 
log : <path to project>\project.json 
log : Restore completed in 6210ms. 

project.json выглядит следующим образом:

{ 
    "dependencies": { 
     "Microsoft.AspNetCore.Mvc": "1.0.1", 
     "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
     "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1", 
     "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
     "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
     "Microsoft.Extensions.Configuration.Json": "1.0.0", 
     "Microsoft.Extensions.Logging": "1.0.0", 
     "Microsoft.Extensions.Logging.Console": "1.0.0", 
     "Microsoft.Extensions.Logging.Debug": "1.0.0", 
     "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
     "Microsoft.NETCore.App": "1.0.1" 
    }, 

    "tools": { 
     "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
     "netcoreapp1.0": { 
      "imports": [ 
       "dotnet5.6", 
       "portable-net45+win8" 
      ], 
      "runtimes": { 
       "win10-x64": {} 
      } 
     } 
    }, 

    "buildOptions": { 
     "emitEntryPoint": true, 
     "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
     "configProperties": { 
      "System.GC.Server": true 
     } 
    }, 

    "publishOptions": { 
     "include": [ 
      "wwwroot", 
      "Views", 
      "Areas/**/Views", 
      "appsettings.json", 
      "web.config" 
     ] 
    }, 

    "scripts": { 
     "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

установлена ​​последняя SDK.

+1

Вы установили .NET Core 1.0.1 SDK? – Tseng

+0

Также попробуйте запустить команду 'dotnet restore' в папке, где находится ваш project.json. – Ignas

+0

@ Цен: Да, я уже установил его. – kettch

ответ

3

Я думаю, runtimes должен быть размещен за пределами установки frameworks. Изменение

"frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
      "dotnet5.6", 
      "portable-net45+win8" 
     ], 
     "runtimes": { 
      "win10-x64": {} 
     } 
    } 
}, 

в

"frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
      "dotnet5.6", 
      "portable-net45+win8" 
     ] 
    } 
}, 
"runtimes": { 
    "win10-x64": {}, 
    "win81-x64": {} 
}, 

Я также должен был добавить win81-x64, так как я бегу на Windows, 8.1, и компилятор жалуется на него.

Дайте мне знать, если это сработало!

+0

Хорошо. Это правильная схема. Я видел некоторые ссылки на объекты runtimes, но никогда в контексте всего файла. Когда-то я это видел, он был встроен в рамки. Возможно, это применимо к более ранней версии. В любом случае, благодарю Вас! – kettch

+1

@kettch: обратитесь к http://schemastore.org/json/ за доступными схемами. Project.json, а также другие json-конфигурации перечислены там с его схемой. Самый последний project.json находится здесь: http://json.schemastore.org/project – Tseng

+0

@Tseng Cool ресурс. Благодаря! – kettch

5

Согласно https://github.com/dotnet/core/issues/267: При обновлении с использованием nuget «тип»: «платформа» удаляется, что эффективно изменяет проект в автономном режиме и, следовательно, будет требовать выполнения раздела времени выполнения.

Для меня вручную добавляется «тип»: «платформа» в файл project.json разрешает проблему.

"dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.1", 
      "type": "platform" 
     }, 

А также Acoording https://github.com/dotnet/core/issues/267: Обновление через NuGet UI вызовов в систему проекта для обновления project.json, «Тип»: «платформа» отбрасывается во время этой правки. NuGet 3.5.0 RTM (еще не выпущен) будет иметь обходное решение для этой проблемы.

Смежные вопросы