2016-08-29 1 views
0

Ich erstelle eine Lösung mit 2 Projekten. Eine Klassenbibliothek und eine Konsolenanwendung für das XUnit-Projekt. Beide Anwendungen zielen auf .net 451- und .net-Core-Frameworks ab.Symbole sind nicht geladen mit Visual Studio 2015 in. Net-Core-Bibliothek Multi-Target-Projekt

Für die Bibliothek Ich habe "netstandard1.3" "net451"

Für das xunit Projekt Ich habe "netcoreapp1.0" "net451"

ich Probleme habe beim Debuggen Die Unit testet innerhalb von Visual Studio 2015 mit dem Test Explorer, wenn ich versuche zu debuggen, werden die Symbole nicht geladen.

Gibt es irgendwelche Einstellungen für die Projekte, die ich vermisse? Irgendeine Einschränkung in Visual Studio 2015?

Ich hatte dieses Projekt und Tests funktioniert gut nur Targeting .net Core-Version. Das Problem begann nach der Einführung des net451-Targets. Alles baut sich richtig auf und die Tests werden ebenfalls korrekt erkannt.

Vielen Dank im Voraus!

project.json von Bibliotheksprojekt

"version": "1.0.4", 
"files": { 
    "includeFiles": [ 
    "Content/ReleaseNotes.txt" 
    ], 
    "include": [ 
    "../../README" 
    ] 
}, 
"releaseNotes": "Review ReleaseNotes.txt for details.", 
    "requireLicenseAcceptance": true 
    }, 
"buildOptions": {  
    }, 
    "frameworks": { 
    "net451": { 
     "frameworkAssemblies": { 
     "System.ComponentModel.DataAnnotations": "", 
     "System.Data": "", 
     "System.Drawing": "", 
     "System.Drawing.Design": "", 
     "System.Transactions": "", 
     "System.Configuration": "", 
     "System.Configuration.Install": "", 
     "System.Management": "", 
     "System.Xml": "", 
     "System.Runtime": { 
      "type": "build" 
     } 
     }, 
     "dependencies": { 
     "Google.Protobuf": "3.0.0-beta4" 
     } 
    }, 
    "netstandard1.3": {  
     "buildOptions": { 
     "define": [ "NETCORE10" ], 
     "warningsAsErrors": false,    
     "embed": [ 
      "keywords.txt", 
      "Resources.resx"   
     ], 
     "resource": [ "**/*.resx" ], 
     "compile": { 
      "exclude": [ 
      "Framework/Net451/**/*.*",   
      ], 
      "includeFiles": [ 
      "Resources.Designer.cs"    
      ], 
      "excludeFiles": [ 
      "Properties/VersionInfo.cs",    
      ] 
     } 
     }, 
     "dependencies": { 
     "Microsoft.Extensions.Configuration.Json": "1.0.0", 
     "NETStandard.Library": "1.6.0", 
     "System.Collections.NonGeneric": "4.0.1", 
     "System.ComponentModel": "4.0.1", 
     "System.ComponentModel.Annotations": "4.1.0", 
     "System.ComponentModel.Primitives": "4.1.0", 
     "System.ComponentModel.TypeConverter": "4.1.0", 
     "System.Data.Common": "4.1.0", 
     "System.Data.SqlClient": "4.1.0", 
     "System.Diagnostics.Process": "4.1.0", 
     "System.Diagnostics.TextWriterTraceListener": "4.0.0", 
     "System.IO.Compression": "4.1.0", 
     "System.IO.FileSystem.Primitives": "4.0.1", 
     "System.IO.MemoryMappedFiles": "4.0.0", 
     "System.IO.Pipes": "4.0.0", 
     "System.Linq.Expressions": "4.1.0", 
     "System.Net.NameResolution": "4.0.0", 
     "System.Net.Security": "4.0.0", 
     "System.Net.Sockets": "4.1.0", 
     "System.Reflection": "4.1.0", 
     "System.Reflection.TypeExtensions": "4.1.0", 
     "System.Security.Principal.Windows": "4.0.0", 
     "System.Text.Encoding.CodePages": "4.0.1", 
     "System.Threading.Timer": "4.0.1", 
     "System.Threading.ThreadPool": "4.0.10", 
     "Google.Protobuf": "3.0.0-beta4" 
     } 
    } 
    } 
} 

project.json von xunit Projekt

{ 
    "version": "7.0.4", 
    "description": "MyLibrary", 
    "packOptions": { 
    "requireLicenseAcceptance": true 
    }, 
    "buildOptions": { 
    }, 
    "testRunner": "xunit", 
    "dependencies": { 
    "dotnet-test-xunit": "2.2.0-*", 
    "xunit": "2.2.0-*", 
    "MyLibrary": { 
     "target": "project" 
    } 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dnxcore50" 
     ], 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.0-*", 
      "type": "platform" 
     } 
     }, 
     "buildOptions": { 
     "define": [ "NETCORE10" ], 
     "copyToOutput": [ "appsettings.json" ], 
     "compile": { 
      "include": [ "../*.cs" ], 
      "exclude": [ 
      "**/._*", 
      "Framework/Net451/**/*.*" 
      ], 
      "excludeFiles": [   
      "TestDataTable.cs" 
      ] 
     }, 
     "warningsAsErrors": false, 
     "optimize": true  
     } 
    }, 
    "net451": { 
     "frameworkAssemblies": { 
     "System.Collections": { 
      "type": "build" 
     }, 
     "System.Diagnostics.Debug": { 
      "type": "build" 
     }, 
     "System.Linq": { 
      "type": "build" 
     }, 
     "System.Reflection": { 
      "type": "build" 
     }, 
     "System.Reflection.Extensions": { 
      "type": "build" 
     }, 
     "System.Runtime": { 
      "type": "build" 
     }, 
     "System.Runtime.Extensions": { 
      "type": "build" 
     }, 
     "System.Threading.Tasks": { 
      "type": "build" 
     } 
     }, 
     "buildOptions": { 
     "compile": { 
      "exclude": [ 
      "Framework/NetCore10/*.*" 
      ], 
      "excludeFiles": [ 
      "Framework/Net451/PerfMonTests.cs", 
      "Framework/Net451/ReplicationTests.cs" 
      ] 
     } 
     } 
    } 
    } 
} 

Antwort

0

Nun, hoffen, dass diese sonst etwas Zeit, um jemanden speichern. Ich bin irgendwie neu in den xproj-Projekten und lerne immer noch über alle Optionen in der neuen project.json-Datei. Was ich bisher mag. Das heißt, hier ist die Antwort auf dieses spezielle Problem.

Ich hatte einen optimize = true außerhalb des Frameworks-Bereichs, der für alle Konfigurationen im Projekt gilt. Die IDE erzeugte also nie den Debug-fähigen Code. Eine gute Vorgehensweise dafür ist ein Konfigurationsabschnitt in Ihrer project.json-Datei, in dem Sie definieren, wie sich der Build für jeden Fall verhalten soll. Und hier ist der Konfigurationsabschnitt, den ich hinzugefügt habe.

"configurations": { 
"Debug": { 
    "buildOptions": { 
    "define": [ "DEBUG" ], 
    "optimize": false, 
    "preserveCompilationContext": true 
    } 
}, 
"Release": { 
    "buildOptions": { 
    "define": [ "RELEASE" ], 
    "optimize": true, 
    "preserveCompilationContext": true, 
    "xmlDoc": true 
    } 
} 

Und das ist es.