2016-02-18 11 views
15

Durante la creazione di app Windows universali si verifica uno strano errore di compilazione.Errore di compilazione per l'app UWP Microsoft.Bcl.Build e packages.config accanto al file di progetto

codice di gravità Descrizione del progetto Linea File stato di sospensione errore Impossibile localizzare C: \ Users \ me \ Source \ Repos \ TT \ Windows \ MyCommonLibrary \ packages.config. Assicurarsi che questo progetto abbia Microsoft.Bcl.Build installato e packages.config si trova accanto al file di progetto . MyApp

'MyApp' ha un riferimento al progetto 'MyCommonLibrary'.

Ciò che è veramente strano è che anche se viene visualizzato come errore di compilazione. Ciò non influisce sulla mia capacità di creare "MyApp" o "MyCommonLibrary"!

Inoltre, non mi impedisce di distribuire ed eseguire la mia app localmente o in altro modo. È solo un fastidio vedere questo elencato come un errore di compilazione quando non rompe la build!

+0

ho lo stesso errore e mi impedisce di aggiungere alcuni pacchetti di nuget. Hai trovato qualche soluzione per questo? – batmaci

+0

Aperto un problema: https://github.com/NuGet/Home/issues/2913. Vedremo cosa ne verrà fuori. – RandomEngy

risposta

3

Credo sia un falso positivo da Nuget Update a 3.1.

Per il momento in cui l'ho risolto creando i pacchetti.config Visual Studio esige manualmente dal progetto esistente.json.

Per esempio:

project.json

{ 
    "dependencies": { 
    "Microsoft.Bcl.Build": "1.0.21", 
    "Newtonsoft.Json": "8.0.2" 
    }, 
    "frameworks": { 
    "uap10.0": {} 
    }, 
    "runtimes": { 
    "win10-arm": {}, 
    "win10-arm-aot": {}, 
    "win10-x86": {}, 
    "win10-x86-aot": {}, 
    "win10-x64": {}, 
    "win10-x64-aot": {} 
    } 
} 

packages.config

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="uap10.0" /> 
    <package id="Newtonsoft.Json" version="8.0.2" targetFramework="uap10.0" /> 
</packages> 
+0

Questo ha funzionato bene ma questo ha generato 8 avvertenze aggiuntive che non avevo prima. Qualche idea? Inoltre, questo conflitto con Nuget non si manterrà poiché mantiene questi riferimenti di dipendenza nella propria configurazione per una soluzione? Grazie. – Thierry

+0

Sono riuscito a rimuovere la maggior parte di essi, ad eccezione di 2 che non descrivono la dipendenza in conflitto ma osservano la verbosità dettagliata mentre parliamo. vale a dire '. – Thierry

13

Ho seguito con i proprietari del pacchetto Bcl.Build e ottenuto una risposta da Eric St. John. Dice che non dovresti fare riferimento a Bcl.Build nel tuo progetto UWP che usa project.json, e c'è una proprietà di progetto per sopprimere l'avviso che ti sta dicendo di farlo.

corretta, il problema è la maggior parte dei pacchetti là fuori che lo utilizzano anche non conoscono UWP sia e se aggiornano per UWP vogliamo loro di abbandonare questa dipendenza invece di farlo funzionare. Il pacchetto non è affatto necessario per UWP o qualsiasi framework che supporti project.json.

Per risolvere l'errore con il vecchio pacchetto effettuare le seguenti operazioni:

Aggiungi < SkipValidatePackageReferences> true </SkipValidatePackageReferences> al nella parte superiore del vostro csproj/vbproj

+0

non è un'impostazione generale? ciò causerà effetti collaterali per qualsiasi altro pacchetto? – batmaci

+0

Non strettamente in alto credo, dovrebbe essere nella sezione ProjectReference come da: http://stackoverflow.com/a/17242424/1033684 –

+0

Sì, la proprietà non dovrebbe essere aggiunta in alto, perché non riesce a caricare il file di progetto. Ho avuto successo aggiungendo questa proprietà alla sezione . Ha funzionato. – Artemious