own nupkg from create crear nuget-package

nuget-package - nupkg - nuget package explorer



¿Puede NuGet agregar un archivo.cs al proyecto de destino? (3)

Si está creando un proyecto netstandard2.0 como la biblioteca netstandard2.0 , debería funcionar lo siguiente:

archivo .nuspec:

<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd"> <metadata minClientVersion="3.3.0"> ... <contentFiles> <files include="**/Pages/Shared/*.*" buildAction="Content" /> </contentFiles> </metadata> <files> <file src="bin/Release/netstandard2.0/*.dll" target="lib/netstandard2.0" /> <file src="contentFiles/**/*" target="contentFiles" /> </files> </package>

Esto copiará la carpeta contentFiles al proyecto. Puede especificar diferentes archivos por lenguaje de programación y plataforma. Si desea agregar a todos ellos, coloque los archivos en contentFiles/any/any .

Quiero crear un paquete NuGet que agregue un archivo .cs (una clase base que el consumidor del paquete debe modificar posteriormente) a la raíz del proyecto de destino durante la instalación.

¿Es eso posible? Todo lo que he encontrado hasta ahora dice "no, solo puedes instalar archivos debajo del directorio del paquete".


Simplemente coloque su archivo .cs en una carpeta llamada "contenido", en la raíz del paquete.

de los documentos:

"puede diseñar una estructura de directorios que siga las convenciones de NuGet.

herramientas : la carpeta de herramientas de un paquete es para los scripts y programas powershell accesibles desde la Consola del Administrador de Paquetes. Después de copiar la carpeta en el proyecto de destino, se agrega a la variable de entorno `$ env: Path (PATH).

lib : los ensamblajes (archivos .dll) en la carpeta lib se agregan como referencias de ensamblaje cuando se instala el paquete.

contenido : los archivos en la carpeta de contenido se copian en la raíz de su aplicación cuando se instala el paquete.

Piense en la carpeta de contenido como la raíz de su aplicación de destino. Por ejemplo, si quiero que un paquete agregue una imagen en el directorio / images de la aplicación de destino, asegúrese de colocar la imagen en la carpeta Contenido / imágenes del paquete ".

vea: http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory


También puede usar la sección <files> de nuspec para mover su archivo a la carpeta de contenido cuando se está construyendo el paquete:

<?xml version="1.0"?> <package> <metadata> ... </metadata> <files> <file src="App.Template.config" target="content" /> <file src="Program.template.cs" target="content" /> </files> </package>