2015-08-02 19 views
19

Ho aggiornato il gestore pacchetti Nuget alla versione 3.1.1.0. Dopo l'aggiornamento, l'apertura di qualsiasi progetto mi dà il messaggio di errore: copy-item: impossibile trovare il percorso 'c: \ users {nomeutente} \ documents \ visual studio 2015 \ projects {nome progetto} \ packages \ Microsoft.CodeDom.Providers.DotNetCompilerPlatform .1.0.0 \ tools \ lib \ net45 'perché non esiste ..... nel file init.ps1Aggiornamento gestore pacchetti Nuget 3.1.1.0 interrotto

Ho trovato $ la variabile installpath data a init.ps1 si differenzia dal vecchio nuget al reale in aggiunta in aggiunta \ tools nome della sottodirectory, che è ovviamente sbagliato e dà l'errore.

Come posso influenzare il parametro $ installpath o eseguire il downgrade di nuget su 3.1.0?

Ho ricontrollato questo comportamento anche in un nuovo vm installato con lo stesso risultato, VS installato -> ok, aggiornamento a nuget 3.1.1 -> interrotto.

Ambiente: Windows 10 tedesco, Visual Studio 2015 Community Edition Inglese

+1

Vorrei aprire un problema sul sito [NuGet GitHub] (https://github.com/nuget/home) sul problema che si sta verificando. –

+0

Ha aperto un problema su GitHub: https://github.com/NuGet/Home/issues/1125#issuecomment-128503074. –

risposta

20

ho ottenuto lo stesso errore e (come segue):

Copy-Item : Cannot find path 'C:\Development\GitHub\pd-tech-demo\backend\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\lib\net45' because it does not exist. 
At C:\Development\GitHub\pd-tech-demo\backend\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\init.ps1:23 char:1 
+ Copy-Item $libDirectory\* $binDirectory | Out-Null 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : ObjectNotFound: (C:\Development\...tools\lib\net45:String) [Copy-Item], ItemNotFoundException 
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand 

ho cambiato la linea 10 di init.ps1 da:

$libDirectory = Join-Path $installPath 'lib\net45' 

a:

$libDirectory = Join-Path $installPath '..\lib\net45' 

che risolve il problema (solo fino a quando non si ripristina nuovamente il pacchetto e si ottiene la versione danneggiata).

La vera soluzione è che i manutentori del pacchetto aggiornino la loro copia di init.ps1. Seguirò e vedrò se riusciremo a farlo. :)

+0

https://github.com/dotnet/roslyn/issues/4352#issuecomment-128083219 –

+0

Questo è un bug in NuGet, vedere i miei commenti sotto –

0

Ho anche avuto questo errore. Cambiare linea 10 di init.ps1 a: Questo non ha funzionato:

$libDirectory = Join-Path $installPath '..\lib\net45' 

Questo ha funzionato:

$libDirectory = Join-Path $installPath '\lib\net45' 
2

Questo problema è monitorato da https://github.com/NuGet/Home/issues/1125 stiamo anche lavorando con il proprietario del pacchetto per vedere se può spostarsi usando init.ps1 per configurare il progetto. Questo processo non segue le linee guida NuGet, ma non siamo sicuri se esiste ancora una soluzione alternativa.

+2

e la correzione è in volo, sarà parte della versione 3.1.2 –

2

Ho ricevuto lo stesso errore in Gestione pacchetti e alla fine ho trovato questo thread.

Come indicato dal messaggio di errore, la cartella ... \ Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0 \ tools \ lib \ net45 manca il problema.

La directory "lib" viene creata direttamente nella directory "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0" per qualche motivo? Quando ho spostato la directory "lib" nella directory "tools", riavviare VS, messaggio di errore andato.

21

Non so se questo aiuterà gli altri, ma ho ottenuto esattamente lo stesso errore su VS2015 con Microsoft.CodeDom.Providers.DotNetCompilerPlatform e che fissa per me è stato quello di effettuare le seguenti operazioni nella console Package Manager:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

Poi dopo il salvataggio, la chiusura e la riapertura VS, senza più errori. Non c'è bisogno di modificare alcun file ps1 per me.

FWIW.

+0

Mi mancava la cartella dei pacchetti di cui parlava. Ciò è accaduto dopo che una forza si è chiusa e ha recuperato i documenti così la soluzione di @Tod Thomson non ha funzionato per me, ma così è stato. –

+3

Questo ha funzionato per me (in VS 2015), come pure –

+1

'DotNetCompilerPlatform.1.0.2' ha risolto il problema per me, facendo riferimento a' DotNetCompilerPlatform.1.0.0' in VS 2015. Errore che stavo ricevendo: _Join-Path: Can not conversion 'System.Object []' al tipo 'System.String' richiesto dal parametro 'ChildPath'. Il metodo specificato non è supportato.at .... init.ps1: 13 char: 57_, anche _Join-Path: impossibile associare l'argomento al parametro 'Path' perché è null ... a init.ps1: 14 char: 44_ – SliverNinja

Problemi correlati