2015-04-23 14 views
10

Desidero creare il pacchetto nuget con un singolo file. C'è un modo per impacchettare un singolo file e quindi indicare al file dove dovrebbe essere collocato all'interno di un progetto di Visual Studio?Utilizzo del pacchetto nuget per distribuire un singolo file

Sono riuscito a creare un file nuspec e a creare un pacchetto nuget contenente il file in questione. Tuttavia, non è possibile installarlo all'interno di un pacchetto.

In particolare: ho un file di configurazione che dovrebbe essere uguale per molti progetti. Voglio essere in grado di installare un pacchetto nuget che può essere installato per posizionare il file di configurazione nella posizione corretta.

Il file nuspec in questo momento specifica solo le nozioni di base sui metadati. Quindi eseguo il pacchetto nuget con il file nuspec e il file di configurazione nella directory. Ciò si traduce in un pacchetto nuget con il file di configurazione in esso, che non è installabile.

Ecco quello che ho nel pacchetto NuGet ora:

enter image description here

e il file nuspec:

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
    <id>StyleCopSettings</id> 
    <version>1.0.1</version> 
    <title>StyleCopSettings</title> 
    <authors>Clearspan</authors> 
    <owners>Clearspan</owners> 
    <description>StyleCopSettings</description> 
    </metadata> 
</package> 
+0

Si prega di inviare il file nuspec. Domande senza una chiara affermazione del problema e codice sufficiente per riprodurre e risolvere il problema si chiudono - in realtà c'è una ragione precisa su questa cosa. Non c'è dubbio se è possibile distribuire i file o meno - questo è ciò che i pacchetti di nuget fanno per definizione. O non hai specificato un percorso target nel tuo nuspec o il percorso è sbagliato. –

+0

@PanagiotisKanavos grazie per avermelo fatto sapere. Ho aggiunto le informazioni extra che ho a disposizione. – Jake

+0

Si prega di inviare il contenuto del file ** nuspec **. * Quella * è la definizione da cui è stato creato il pacchetto nuget. Controlla [i documenti] (https://docs.nuget.org/create/creating-and-publishing-a-package), qual è il valore dell'attributo 'target' del tuo elemento' file'? –

risposta

6

Il problema è che non fa riferimento il file in questione nella vostra nuspec. Ho modificato il tuo nuspec come segue.

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
    <id>StyleCopSettings</id> 
    <version>1.0.1</version> 
    <title>StyleCopSettings</title> 
    <authors>Clearspan</authors> 
    <owners>Clearspan</owners> 
    <description>StyleCopSettings</description> 
    </metadata> 
    <files> 
     <file src="$pathToYourFile$\styleCopSettings.txt" target="content\Settings" /> 
    </files> 
</package> 

Per aggiungere un file a un progetto tramite un pacchetto è necessario aggiungerlo alla directory del contenuto del pacchetto target="content\Settings". La directory del contenuto di un pacchetto nuget si comporta come la directory principale del progetto in cui verrà installato il pacchetto (source). Quindi, specificando ulteriori directory nel nostro target, possiamo posizionare il file in un posto specifico. Nell'esempio precedente il file styleCopSettings.txt verrà inserito nella directory Settings di qualsiasi progetto che utilizza questo pacchetto. La directory delle impostazioni verrà aggiunta come parte dell'installazione.

Dopo aver chiamato pacchetto NuGet sul nuspec si dovrebbe finire con qualcosa di simile

nupkg view

Quando si consuma il pacchetto si finirà con il seguente.

example

+1

È stato così: ha funzionato. Che tu così tanto! – Jake

+1

Ottimo consiglio! Il "contenuto" salva la mia giornata! Grazie! – GRGodoi

Problemi correlati