Referencia netstandard 2.0 tipos en ASP.NET MVC 5 vistas de afeitar en .NET 4.7.1

e suponía que @ .NET 4.7.1 resolvería los problemas que teníamos al hacer referencia anetstandard 2.0 bibliotecas del marco completo. Lo hizo, a pesar de algunas advertencias de conflicto dll continuas y dolorosas y problemas relacionados, y la necesidad de actualizar manualmente a PackageReferences ver esta maravillosa extensión). Sin embargo, uno puede hacerlo funcionar, aunque vea la nota 1 a continuación, y si puedo decir: es desafortunado decir lo menos que no ha habido ayuda de VStudio o mucha orientación sobre este y otros temas relacionados, hasta ahora uno tiene que encontrar tales ayuda en canales posteriores en github. Idealmente, este problema en sí mismo habría sido enviado: ASP.NET MVC 5 aún no es compatible con netstandard en la maquinilla de afeitar ... ¡ojalá nos hubieran enviado un mensaje si es cierto! Salvaríainterminabl horas perdidas! ¿Pero es ese el caso? ¿O hay una solución?

Aquí, entonces, está el problema con los proyectos ASP.NET MVC 5 (incluso aquellos dirigidos a 4.7.1). Aunque el código .cs simple funciona, incluso en los controladores, este esn verdadero para cualquier código dentro de las vistas razonables .cshtml archivos). Cualquier tipo al que se haga referencia en las vistas de afeitar que provienen de unanetstandard la biblioteca falla por completo.

Para reproducir este problema y asegurarme de que no fuera solo mi propio código, reproduje este haciendo un nuevo proyecto ASP.NET MVC 5 (en github) en la versión más reciente de VStudio 2017 (incluso la versión Preview, 15.7.0 Preview 4.0), luego haciendo una nuevanetstandard project con solo un par de tipos, por lo que podría practicar hacer referencia a esos tipos en las páginas de vista de MVC 5. Y, efectivamente, todavía falla. Por ejemplo, este tipo simple del proyecto netstandard:

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

Si convierte esa enumeración en un tipo dentro de su modelo de vista pasado a la página, si alguna vez hace referencia a esa propiedad en la página de afeitar, obtendrá errores de tiempo de compilación y también en tiempo de ejecución, diciendo:

El tipo 'Enum' se define en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'netstandard, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = cc7b13ffcd2ddd51'. AspMvc5WebApp471

omo también se detalla en ese repositorio, incluso intenté recompilar mi propia versión deMicrosoft.CodeDom.Providers.DotNetCompilerPlatform para referenciarlo dentro deweb.config, pero eso no resolvió el problema.

Por lo tanto, sería maravilloso saber del equipo de ASP.NET o de cualquier otra persona que pueda saber cómo solucionar este problema, lo que podría implicar esa solución. O si ASP.NET MVC 5 simplemente aún no funciona connetstandard, sería bueno saber si ese es el mensaje y si es compatible connetstandard podría venir a ASP.NET MVC 5 en el futuro cercano, o si está en una hoja de ruta en alguna parte? ¿Y quizás qué es exactamente lo que está causando este fracaso? Por supuesto, sería más feliz escuchar si hay una solución que se pueda aplicar de inmediato, pero de cualquier manera, necesitamos saber, de lo contrarionetstandard es básicamente inútil para aquellos de nosotros que no podemos simplemente volcar ASP.NET MVC 5 en un día (tanto como nos gustaría, en el mundo real ...) Muy apreciado.

(Nota 1: Net Framework 4.7.1 estaba ansioso por mí y por muchos otros cuando se dijo que resolvería muchos de los puntos débiles, pero desafortunadamente ha introducido su propio conjunto de sin fin dll infierno como problemas, o veraqu, o aqu, o aqu. Ver por ejemplo las discusiones enSystem.Net.Http (y los redireccionamientos vinculantes no solo eliminan todas las advertencias de conflicto, a menudo traen sus propias cosas muy dolorosas). Ahora algunos han esperado que 4.7.2 resolvería todos estos problemas, aunque no resolvió estos problemas de ASP.NET MVC 5 para mí)

Respuestas a la pregunta(1)

Su respuesta a la pregunta