Por que a adição de uma dependência no meu projeto de API da Web (ASP.NET v5) não funciona totalmente?
Estou usando o Visual Studio 2015 CTP 6 no Windows 8.1.
Estou tentando escrever uma API da Web usando o ASP.NET v5, com seu novo formato de arquivo de projeto. Adicionei uma referência ao Noda Time v1.3.0 ao meuproject.json
arquivo e o editor no Visual Studio o seleciona, mas o processo de compilação falha.
Receita Repro, desde o início:
Open VS 2015 CTP 6Crie um novo projeto em uma nova solução:Selecione o modelo de projeto de aplicativo Web do ASP.NETSelecione "API da Web de visualização do ASP.NET 5" na caixa de diálogo do modeloConstrua o projeto, apenas para confirmar que tudo está corretoAbrirproject.json
, e na seção "dependências" (mal formatada), adicione uma linha extra no início (para evitar a necessidade de adicionar vírgula a outra linha):
"NodaTime": "1.3.0",
AbrirControllers\ValuesController.cs
Edite o parâmetroGet()
método para que o corpo seja:
return DateTimeZoneProviders.Tzdb.Ids;
DateTimeZoneProviders
terá rabiscos vermelhos, o que é razoável - não temos umausing
directiva ainda.Coloque o cursorDateTimeZoneProviders
e bateuCtrl+. - você deve ser oferecido "using NodaTime;
"como uma correção em potencial ... então o Intellisense (e, portanto, Roslyn) definitivamente sabe sobre a dependência.Aceite a correção. Os rabiscos vão embora - está tudo bem, certo?Tente criar a solução: você deve receber dois erros, basicamente indicando que a dependêncianão tem foi resolvido.No Explorer, se você procurar noBugDemo
diretório de solução, você encontrará umartifacts\obj\BugDemo\Debug\ProjectRawReferences
diretório que contém os diretórios "ASP.NET Core 5.0" e "ASP.NET 5.0", ambos com muitas DLLs em ... mas não o tempo de Noda.
Clicar com o botão direito do mouse no projeto e selecionar "Restaurar Pacotes" não corrige isso.
Quando construo o mesmo projeto usando o Projeto K, umkpm restore
faz pegue o Noda Time e, se você adicionar uma seção aoproject.json
como abaixo, entãok web
obras e visitashttp: // localhost: 5001 / api / values mostrará todos os IDs de fuso horário do TZDB:
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001"
},
Então, o que estou fazendo de errado? Ou é apenas um bug?