Cuando publico un proyecto ASP.NET Core 3.0, obtengo algunas carpetas localizadas donde los 4 ensambles que se muestran están en cada una de estas carpetas. No estoy seguro de por qué se incluyen estas carpetas y archivos. Ninguno de mis paquetes hace referencia a un CodeAnalysis
paquete.
He añadido <PreserveCompilationContext>false</PreserveCompilationContext>
en el archivo csproj pero no sirvió de nada. ¿Hay alguna manera de excluirlos?
asp.net-core
visual-studio-2019
asp.net-core-3.0
Tony_Henrich
fuente
fuente
Respuestas:
Si
CodeAnalysis.dll
tiene una referencia de proyectoMicrosoft.VisualStudio.Web.CodeGeneration.Design
, necesita muchas carpetas de idiomas que contienen archivos en su salida publicada , lo cual es necesario para los controladores de andamios. Si eso es cierto para su proyecto, cambie la referencia del paquete en su.csproj
archivo para incluirExcludeAssets="all"
Por ejemplo,
*.csproj
archivo antiguoEl nuevo archivo
*.csproj
debe serfuente
En mi caso, la fuente de estas carpetas localizadas era del paquete Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. Tiene una dependencia en Microsoft.CodeAnalysis.Razor. Puede leer más sobre el propósito del paquete aquí: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.1
No puede simplemente excluir un activo cuando intenta aprovechar el paquete. Mi solución fue incluir condicionalmente la referencia del paquete siempre que el proyecto esté en modo de depuración.
Luego utilicé una directiva de preprocesador #if para ejecutar condicionalmente el código que permite la compilación de tiempo de ejecución de afeitar.
Nota: es posible que deba eliminar su carpeta bin para ver las carpetas eliminadas después de una compilación. Además, asegúrese de construir bajo la configuración correcta de la solución.
Pude encontrar un problema de Github que describe este escenario exacto, pero desafortunadamente nunca se resolvió. https://github.com/dotnet/extensions/issues/2247
fuente