2013-11-21 28 views
14

Ho installato NuGet.Tools.2013.vsix sul mio VS2013. E mi piace creare un pacchetto nuget da Manager Console, ma quando cerco di ottenere un mensagem:Crea pacchetto nuget da Visual Studio 2013

Il termine 'nuget' non è riconosciuto come il nome di un cmdlet, una funzione, un file di script o un programma eseguibile. Controlla l'ortografia del nome o se è stato incluso un percorso , verifica che il percorso sia corretto e riprova.

Non so cosa faccio di sbagliato.

È possibile utilizzare la Console di gestione per creare un pacchetto oppure è necessario utilizzare altro materiale.

risposta

0

Assicurarsi di avere nuget.exe da qualche parte su %PATH%.

Nota: Usiamo Jenkins e aveva bisogno EnvInject per ottenere il% variabile% PATH disponibile durante il processo di compilazione.

Modificare il file .csproj per includere una nuova variabile macro per il numero di versione di montaggio, vedi Determine Assembly Version during a Post Build Event?

<Target Name="PostBuildMacros"> 
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> 
    <Output TaskParameter="Assemblies" ItemName="Targets" /> 
    </GetAssemblyIdentity> 
    <ItemGroup> 
    <VersionNumber Include="@(Targets->'%(Version)')"/> 
    </ItemGroup> 
</Target> 
<PropertyGroup> 
    <PostBuildEventDependsOn> 
    $(PostBuildEventDependsOn); 
    PostBuildMacros; 
    </PostBuildEventDependsOn>  
    <PostBuildEvent>echo HELLO, THE ASSEMBLY VERSION IS: @(VersionNumber)</PostBuildEvent> 
</PropertyGroup> 

utilizzare il seguente script di post-generazione per distribuire nuovi pacchetti ogni volta che la versione di assembly è cambiato e una nuova .nupkg è richiesto;

IF "$(ConfigurationName)" == "Release" (
    CD /D $(ProjectDir) 
    IF EXIST $(TargetName)[email protected](VersionNumber).nupkg EXIT 
    nuget pack $(ProjectPath) -Properties Configuration=$(ConfigurationName) 
    nuget push $(TargetName)[email protected](VersionNumber).nupkg -s http://mynugetserver 
) 
8

Non sono sicuro di comprendere appieno la domanda, ma se si utilizza la console di Gestione pacchetti in Visual Studio, non è necessario avviare i comandi con nuget in quella finestra. In genere utilizzo la console di Gestione pacchetti per l'installazione/l'aggiornamento dei pacchetti per la mia soluzione corrente. Per esempio:

Install-Package Nunit 

Di solito si creano i pacchetti chiamando NuGet dalla normale linea di comando di Windows con qualcosa di simile:

nuget pack Library.csproj 

Vedi http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package per maggiori informazioni.

+0

Provato quel collegamento, ma pack Library.nuspec non funziona. Come possiamo creare pacchetti di nuget senza installare un altro programma e modificare la variabile del percorso? – MrFox

+1

La domanda è come nuget pack da NPC. La risposta non può essere "Non utilizzare NPC, utilizzare la CLI di Windows" – Suamere

6

La console Gestore pacchetti NuGet non espone alcun comando per creare pacchetti NuGet da Visual Studio. Non è possibile utilizzare i comandi nuget.exe, poiché non si sta parlando con la riga di comando NuGet all'interno della console abilitata per PowerShell (a meno che non si induca il profilo NuGet PowerShell a essere a conoscenza di nuget.exe sul disco da qualche parte, creando un alias per esempio).

Ho tuttavia creato un pacchetto NuGet da installare se si desidera creare i file NuSpec in Visual Studio (incluso IntelliSense). Maggiori informazioni sul mio blog: http://www.xavierdecoster.com/install-nuspec-with-intellisense

Ciò consente di creare più facilmente file manifest di NuGet, tuttavia questo non crea ancora il pacchetto effettivo. Per questo dovrai eseguire il fallback sullo strumento da riga di comando nuget.exe che puoi scaricare da https://nuget.org/nuget.exe. La documentazione è disponibile sul sito NuGet Docs.

0

Questo è vecchio, ma ero alla ricerca di queste informazioni. Ho unito le informazioni allo http://docs.nuget.org/create/creating-and-publishing-a-package con le informazioni che ho ricavato dalla riproduzione con la console di Gestione pacchetti.

ho creato le specifiche e pacchetto dalla Console di gestione pacchetto effettuando le seguenti operazioni:

cd <projectFolder> 
../.nuget/nuget spec 

Sostituire <projectFolder> con il percorso del file di progetto.

Ciò creerà una specifica nella cartella del progetto. (file .nuspec)

Quindi modificare questo file appena creato come necessario.Alcune informazioni sembrano essere estratte dal file AssemblyInfo, quindi potrebbe essere necessario modificare anche questo.

Poi

../.nuget/nuget pack <projectFileName.csproj> 

Sostituire <projectFileName.csproj> con il nome del file di progetto. (Immagino che sarebbe .vbproj per un progetto vb.)

Problemi correlati