Faça referência aos tipos do netstandard 2.0 nas visualizações de lâmina do asp.net MVC 5 no .NET 4.7.1

O .NET 4.7.1 deveria resolver os problemas que tivemos na referêncianetstandard 2.0 bibliotecas da estrutura completa. Foi o que aconteceu, apesar de alguns avisos de conflito de dll contínuos e dolorosos e de problemas relacionados, além da necessidade de atualizar manualmente o PackageReferences (veja esta extensão maravilhosa) No entanto, é possível fazê-lo funcionar, embora veja a nota 1 abaixo, e se eu posso dizer: é lamentável dizer o mínimo de que não houve ajuda do VStudio ou muita orientação sobre esse e outros assuntos relacionados, até agora é preciso encontrar esse ajuda nos canais anteriores no github. Idealmente, esse problema em si teria sido enviado por mensagem: o ASP.NET MVC 5 ainda não suporta netstandard no razor ... gostaria que eles apenas tivessem nos enviado uma mensagem se isso fosse verdade! Salvariasem fim horas perdidas! Mas, seria esse o caso? Ou existe uma correção?

Aqui está o problema com os projetos do ASP.NET MVC 5 (mesmo aqueles direcionados para 4.7.1). Embora o código .cs simples funcione, inclusive nos controladores, isso énão true para qualquer código nas visualizações de navalha (.cshtml arquivos). Quaisquer tipos referenciados nas visualizações de navalha que vieram de umnetstandard biblioteca falhar completamente.

Para reproduzir esse problema e garantir que não fosse apenas meu próprio código, reproduzi essecriando um novo projeto ASP.NET MVC 5 (no github) na versão mais recente do VStudio 2017 (até a versão Preview, 15.7.0 Preview 4.0) e, em seguida, criar um novonetstandard projeto com apenas alguns tipos, para que eu pudesse praticar a referência desses tipos nas páginas de visualização do MVC 5. E com certeza, ainda falha. Por exemplo, esse tipo simples do projeto netstandard:

public enum AnimalType { Cat, Dog, Zebra, Alligator }

Se você transformar esse enum em um tipo de modelo de exibição passado para a página, se alguma vez referenciar essa propriedade na página de edição, obterá erros de tempo de compilação e também em tempo de execução, dizendo:

O tipo 'Enum' é definido em um assembly que não é referenciado. Você deve adicionar uma referência ao assembly 'netstandard, Versão = 2.0.0.0, Culture = neutral, PublicKeyToken = cc7b13ffcd2ddd51'. AspMvc5WebApp471

Como também detalhado nesse repositório, tentei recompilar minha própria versão doMicrosoft.CodeDom.Providers.DotNetCompilerPlatform para referenciá-lo dentro doweb.config, mas isso não resolveu o problema.

Portanto, seria ótimo ouvir da equipe do ASP.NET ou de qualquer outra pessoa que saiba como corrigir esse problema, o que essa correção pode acarretar. Ou se o ASP.NET MVC 5 simplesmente ainda não for viável comnetstandard, seria bom saber se essa é a mensagem e se o suporte paranetstandard pode estar chegando ao ASP.NET MVC 5 em um futuro próximo ou se estiver em um roteiro em algum lugar? E talvez o que exatamente esteja causando esse fracasso? Obviamente, seria mais feliz saber se existe uma correção que possa ser aplicada imediatamente, mas de qualquer forma, precisamos saber, caso contrárionetstandard é basicamente inútil para aqueles que não podem simplesmente despejar o ASP.NET MVC 5 em um dia (tanto quanto gostaríamos, no mundo real ...) Muito apreciado.

(Nota 1: O Net Framework 4.7.1 era ansiosamente aguardado por mim e por muitos outros, quando foi dito por algum tempo que resolveria muitos dos pontos problemáticos, mas, infelizmente, ele introduziu seu próprio conjunto dedll interminável como problemasou vejaaqui, ou aqui, ou aqui. Veja, por exemplo, as discussões sobreSystem.Net.Http (e os redirecionamentos de ligação não apenas removem todos os avisos de conflito, eles geralmente trazem suas próprias coisas altamente dolorosas). Agora, alguns esperavam que o 4.7.2 resolvesse todos esses problemas, embora isso não tenha resolvido esses problemas do ASP.NET MVC 5)

questionAnswers(1)

yourAnswerToTheQuestion