(Domanda sottotitolo: sono risorse non supportato in .netstandard 1.3
o è il mio file di progetto appena incasinato?)Perché non posso utilizzare le risorse incorporate (resx) durante il targeting .netstandard 1.3?
Ho appena creato una libreria di classi portatile esempio in Visual Studio 2015 Update 3 e aggiunto un file di risorse di esempio. Inizialmente, il file project.json
assomiglia a questo:
{
"supports": {
"net46.app": {},
"uwp.10.0.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452+win81"
}
}
}
fine: No errori di compilazione!
Successivamente, ho utilizzato le proprietà del progetto per il target .NETStandard 1.3
.
Ora project.json
assomiglia a questo:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.3": {}
}
}
Ora ho il seguente costruire errore - che in pratica significa l'azione di costruzione EmbeddedRessource
non è supportata:
Non sono davvero esperto con project.json
, ma per me le cose sembrano incoerenti - e non ho idea di dove sia il problema.
- nel primo
project.json
: se io sostengonet46
, perché è importandonet452
? - nel secondo
project.json
: se utilizzonetstandard1.3
, perché esiste una dipendenza della libreria nella versione1.6
? - e infine, che cos'è
.NETPortable, Version=v5.0
? La modifica del nome di.NET Core
ha avuto luogo all'inizio di quest'anno - perché ci riferiamo ancora alla versione5.0
? Anche MSDN non sa<TargetFrameworkVersion>5.0</TargetFrameworkVersion>
che è specificato nelcsproj
Per me, questo mi sembra netstandard
non riguarda solo le librerie disponibili, utensili sembra coinvolto, anche. Ma questo non spiega, perché ha funzionato per dnxcore50
.
ho il sospetto che questo ha qualcosa a che fare con il fatto che le applicazioni Windows universali non usano 'resx 'file. Ma: le applicazioni universali di Windows sono compatibili con 'netstandard 1.4' e superiori ... – ventiseis
hai ragione sulla parte resx, ma gli UWP sono effettivamente compatibili con' netstandard1.4' e inferiori non più alti. – nawfal
Hai ragione, ho guardato [la matrice] (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md) e frainteso le frecce. Ma è anche scritto lì: _Se una libreria è stata progettata per .NET Platform Standard versione 1.3, può funzionare solo su .NET Framework 4.6 o versioni successive, .NET Core, Universal Windows Platform 10 (UWP) e piattaforme Mono/Xamarin ._ – ventiseis