c# - una - ASP.NET Core: excluir o incluir archivos en la publicación
como crear una pagina web en visual studio 2017 (6)
De la documentation : si desea especificar, por ejemplo, algunos archivos para publicar con su aplicación, aún puede usar los mecanismos conocidos en
csproj
para eso (por ejemplo, el elemento<Content>
).
Existe un atributo
CopyToPublishDirectory
para los
elements
ItemGroup
que determina si se debe copiar el archivo en el directorio de publicación y puede tener uno de los siguientes valores:
- Siempre,
- PreserveNewest
- Nunca
Tenga en cuenta que también hay un atributo similar
CopyToOutputDirectory
para la carpeta de salida.
Ejemplo (desde here ):
<ItemGroup>
<None Include="notes.txt" CopyToOutputDirectory="Always" />
<!-- CopyToOutputDirectory = { Always, PreserveNewest, Never } -->
<Content Include="files/**/*" CopyToPublishDirectory="PreserveNewest" />
<None Include="publishnotes.txt" CopyToPublishDirectory="Always" />
<!-- CopyToPublishDirectory = { Always, PreserveNewest, Never } -->
</ItemGroup>
Si le interesa cómo la migración
project.json -.csproj
utiliza el atributo
CopyToPublishDirectory
para migrar las opciones de publicación, puede consultar la clase
MigratePublishOptionsRule
en
MigratePublishOptionsRule
cli repo.
Había antes de
aspdotnet1.0
incluir / excluir secciones en el archivo
project.json
{
"exclude": [
"node_modules",
"bower_components"
],
"publishExclude": [
"**.xproj",
"**.user",
"**.vspscc"
]
}
¿Dónde está esta sección en ASP.NET Core 1.1 (no hay
project.json
)?
¿Hay secciones similares en el archivo
.pubxml
o
.pubxml
?
Con Visual Studio 2017 (probado en 15.6.5), puede hacer clic con el botón derecho en el archivo en el Explorador de soluciones y establecer la Acción de compilación en Ninguno .
Actualizará su archivo
.csproj
así:
<ItemGroup>
<Content Remove="appsettings.Development.json" />
<Content Remove="appsettings.json" />
<Content Remove="npm-shrinkwrap.json" />
<Content Remove="package.json" />
<Content Remove="tsconfig.json" />
</ItemGroup>
<ItemGroup>
<None Include="appsettings.Development.json" />
<None Include="appsettings.json" />
<None Include="npm-shrinkwrap.json" />
<None Include="package.json" />
<None Include="tsconfig.json" />
</ItemGroup>
Espero que esto ayude.
En
.csproj
para Visual Studio versiones 15.3 y superior, esto mantiene los archivos visibles en Visual Studio (mientras que "Content Remove" no), y evita que los archivos se publiquen.
<ItemGroup>
<Content Update="appsettings*.json" CopyToPublishDirectory="Never" />
</ItemGroup>
Me di cuenta de que mis carpetas con algunos archivos no se publicaban. Intenté hacer clic derecho en las carpetas del proyecto para ver si podía seleccionar una opción para incluir la carpeta con la implementación. No está allí, pero descubrí si Selecciono los archivos dentro de la carpeta y los marco para copiarlos en la implementación, copiará los archivos y creará su carpeta en el proceso.
Esto ayuda si su carpeta tiene archivos, pero no ayuda si sus carpetas están vacías.
Después de Visual Studio 2017 15.3
Edite el archivo .csproj para excluir manualmente la publicación de archivos / carpetas
<ItemGroup>
<Content Remove="src/**" />
<Content Remove="node_modules/**" />
</ItemGroup>
Edite el archivo .csproj para excluir manualmente la publicación de archivos / carpetas.
También puedes referir this
Para la implementación web, consulte https://blogs.msdn.microsoft.com/webdev/2010/04/22/web-deployment-excluding-files-and-folders-via-the-web-applications-project-file/ .
project.json
ha sido reemplazado por
csproj
.
Puede leer más sobre esto en
https://www.stevejgordon.co.uk/project-json-replaced-by-csproj
.
Para actualizar proyectos existentes de .NET Core 1.0 o para usar .NET Core 1.1, puede leer https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-net-core-1-1/ .