diff --git a/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs b/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs index a3416f5220837..6dd2acd0ba198 100644 --- a/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs +++ b/src/Compilers/CSharp/Portable/CommandLine/CSharpCompiler.cs @@ -160,7 +160,14 @@ private SyntaxTree ParseFile( } else { - return ParseFile(parseOptions, scriptParseOptions, content, file); + SyntaxTree tree = ParseFile(parseOptions, scriptParseOptions, content, file); + if(Arguments.EmbedSourceInPdb) + { + SyntaxNode root = tree.GetRoot(); + root = root.WithAdditionalAnnotations(new SyntaxAnnotation("EmbedSourceInPdb")); + tree = tree.WithRootAndOptions(root, tree.Options); + } + return tree; } } diff --git a/src/Compilers/CSharp/Portable/CommandLine/CommandLineParser.cs b/src/Compilers/CSharp/Portable/CommandLine/CommandLineParser.cs index 736c4a2ca7b38..5e94f34c820aa 100644 --- a/src/Compilers/CSharp/Portable/CommandLine/CommandLineParser.cs +++ b/src/Compilers/CSharp/Portable/CommandLine/CommandLineParser.cs @@ -58,6 +58,7 @@ internal sealed override CommandLineArguments CommonParse(IEnumerable ar bool concurrentBuild = true; bool emitPdb = false; string pdbPath = null; + bool embedSourceInPdb = false; bool noStdLib = false; string outputDirectory = baseDirectory; string outputFileName = null; @@ -971,6 +972,9 @@ internal sealed override CommandLineArguments CommonParse(IEnumerable ar additionalFiles.AddRange(ParseAdditionalFileArgument(value, baseDirectory, diagnostics)); continue; + case "embedSource": + embedSourceInPdb = true; + continue; } } @@ -1102,6 +1106,7 @@ internal sealed override CommandLineArguments CommonParse(IEnumerable ar OutputFileName = outputFileName, PdbPath = pdbPath, EmitPdb = emitPdb, + EmbedSourceInPdb = embedSourceInPdb, OutputDirectory = outputDirectory, DocumentationPath = documentationPath, ErrorLogPath = errorLogPath, diff --git a/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs b/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs index fda6dd7c018a2..b09cb928672ec 100644 --- a/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs +++ b/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs @@ -2612,9 +2612,20 @@ private static ImmutableArray MakeChecksumBytes(string bytesText) return builder.ToImmutableAndFree(); } + private static bool IsSyntaxTreePdbEmbedded(SyntaxTree tree) + { + return tree.GetRoot().GetAnnotations().Any(a => a.Kind == "EmbedSourceInPdb"); + } + private static Cci.DebugSourceDocument MakeDebugSourceDocumentForTree(string normalizedPath, SyntaxTree tree) { - return new Cci.DebugSourceDocument(normalizedPath, Cci.DebugSourceDocument.CorSymLanguageTypeCSharp, () => tree.GetChecksumAndAlgorithm()); + byte[] pdbEmbeddedSourceBytes = null; + if(IsSyntaxTreePdbEmbedded(tree)) + { + SourceText text = tree.GetText(); + pdbEmbeddedSourceBytes = text.Encoding.GetBytes(text.ToString()); + } + return new Cci.DebugSourceDocument(normalizedPath, Cci.DebugSourceDocument.CorSymLanguageTypeCSharp, () => tree.GetChecksumAndAlgorithm(), pdbEmbeddedSourceBytes); } private void SetupWin32Resources(PEModuleBuilder moduleBeingBuilt, Stream win32Resources, DiagnosticBag diagnostics) diff --git a/src/Compilers/Core/Portable/CommandLine/CommonCommandLineArguments.cs b/src/Compilers/Core/Portable/CommandLine/CommonCommandLineArguments.cs index b4cff154347a9..3d26105467b90 100644 --- a/src/Compilers/Core/Portable/CommandLine/CommonCommandLineArguments.cs +++ b/src/Compilers/Core/Portable/CommandLine/CommonCommandLineArguments.cs @@ -74,6 +74,11 @@ public abstract class CommandLineArguments /// public bool EmitPdb { get; internal set; } + /// + /// True to embed source files in the PDB. + /// + public bool EmbedSourceInPdb { get; internal set; } + /// /// Absolute path of the output directory. /// diff --git a/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs b/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs index 5c101b1d07188..75e13019791fb 100644 --- a/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs +++ b/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs @@ -132,7 +132,8 @@ internal enum PdbWriterOperation : byte DefineKickoffMethod, OpenMapTokensToSourceSpans, MapTokenToSourceSpan, - CloseMapTokensToSourceSpans + CloseMapTokensToSourceSpans, + SetSource } public bool LogOperation(PdbWriterOperation op) @@ -949,6 +950,16 @@ private ISymUnmanagedDocumentWriter GetDocumentWriter(DebugSourceDocument docume _callLogger.LogArgument(vendor.ToByteArray()); _callLogger.LogArgument(type.ToByteArray()); } + if(document.EmbeddedSource != null) + { + writer.SetSource((uint)document.EmbeddedSource.Length, document.EmbeddedSource); + if (_callLogger.LogOperation(OP.SetSource)) + { + //logging length is irrelevant, it has no additional entropy + //for performance it might be better to log ChecksumAndAlgorithm instead? + _callLogger.LogArgument(document.EmbeddedSource); + } + } } catch (Exception ex) { diff --git a/src/Compilers/Core/Portable/PEWriter/DebugSourceDocument.cs b/src/Compilers/Core/Portable/PEWriter/DebugSourceDocument.cs index 3af3fd6159d5d..1960d62478c4a 100644 --- a/src/Compilers/Core/Portable/PEWriter/DebugSourceDocument.cs +++ b/src/Compilers/Core/Portable/PEWriter/DebugSourceDocument.cs @@ -19,6 +19,7 @@ internal sealed class DebugSourceDocument private readonly string _location; private readonly Guid _language; private readonly bool _isComputedChecksum; + private readonly byte[] _embeddedSource; private readonly Task, Guid>> _checksumAndAlgorithm; @@ -33,11 +34,12 @@ public DebugSourceDocument(string location, Guid language) /// /// Use to create a document when checksum is computed based on actual source stream. /// - public DebugSourceDocument(string location, Guid language, Func, Guid>> checksumAndAlgorithm) + public DebugSourceDocument(string location, Guid language, Func, Guid>> checksumAndAlgorithm, byte[] embeddedSource = null) : this(location, language) { _checksumAndAlgorithm = Task.Run(checksumAndAlgorithm); _isComputedChecksum = true; + _embeddedSource = embeddedSource; } /// @@ -108,6 +110,14 @@ public ValueTuple, Guid> ChecksumAndAlgorithm } } + public byte[] EmbeddedSource + { + get + { + return _embeddedSource; + } + } + /// /// returns true when checksum was computed base on an actual source stream /// as opposed to be suggested via a checksum directive/pragma @@ -119,5 +129,7 @@ internal bool IsComputedChecksum return _isComputedChecksum; } } + + } } diff --git a/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt b/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt index d0dae9e0d2776..61544a749438b 100644 --- a/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt +++ b/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt @@ -1,4 +1,5 @@ *REMOVED*static Microsoft.CodeAnalysis.SyntaxNodeExtensions.NormalizeWhitespace(this TNode node, string indentation = " ", bool elasticTrivia = false) -> TNode +Microsoft.CodeAnalysis.CommandLineArguments.EmbedSourceInPdb.get -> bool Microsoft.CodeAnalysis.CommandLineArguments.ScriptArguments.get -> System.Collections.Immutable.ImmutableArray Microsoft.CodeAnalysis.CommandLineParser.IsInteractive.get -> bool Microsoft.CodeAnalysis.Compilation.GetSubmissionResultType(out bool hasValue) -> Microsoft.CodeAnalysis.ITypeSymbol diff --git a/src/Test/Diagnostics/project.lock.json b/src/Test/Diagnostics/project.lock.json index 1114231e6cd95..84de2dfbf2c57 100644 --- a/src/Test/Diagnostics/project.lock.json +++ b/src/Test/Diagnostics/project.lock.json @@ -101,8 +101,9 @@ "sha512": "pwu80Ohe7SBzZ6i69LVdzowp6V+LaVRzd5F7A6QlD42vQkX0oT7KXKWWPlM/S00w1gnMQMRnEdbtOV12z6rXdQ==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "Microsoft.Composition.nuspec", + "License-Stable.rtf", "lib/portable-net45+win8+wp8+wpa81/System.Composition.AttributedModel.dll", "lib/portable-net45+win8+wp8+wpa81/System.Composition.AttributedModel.XML", "lib/portable-net45+win8+wp8+wpa81/System.Composition.Convention.dll", @@ -113,255 +114,254 @@ "lib/portable-net45+win8+wp8+wpa81/System.Composition.Runtime.XML", "lib/portable-net45+win8+wp8+wpa81/System.Composition.TypedParts.dll", "lib/portable-net45+win8+wp8+wpa81/System.Composition.TypedParts.XML", - "License-Stable.rtf", - "Microsoft.Composition.nuspec", - "package/services/metadata/core-properties/12e2c94035674b25b911285cc26e3260.psmdcp" + "package/services/metadata/core-properties/12e2c94035674b25b911285cc26e3260.psmdcp", + "[Content_Types].xml" ] }, "System.Collections/4.0.10": { "sha512": "ux6ilcZZjV/Gp7JEZpe+2V1eTueq6NuoGRM3eZCFuPM25hLVVgCRuea6STW8hvqreIOE59irJk5/ovpA5xQipw==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Collections.nuspec", + "lib/netcore50/System.Collections.dll", "lib/DNXCore50/System.Collections.dll", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", - "lib/netcore50/System.Collections.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", - "package/services/metadata/core-properties/b4f8061406e54dbda8f11b23186be11a.psmdcp", + "ref/dotnet/System.Collections.dll", + "ref/dotnet/System.Collections.xml", + "ref/dotnet/zh-hant/System.Collections.xml", "ref/dotnet/de/System.Collections.xml", - "ref/dotnet/es/System.Collections.xml", "ref/dotnet/fr/System.Collections.xml", "ref/dotnet/it/System.Collections.xml", "ref/dotnet/ja/System.Collections.xml", "ref/dotnet/ko/System.Collections.xml", "ref/dotnet/ru/System.Collections.xml", - "ref/dotnet/System.Collections.dll", - "ref/dotnet/System.Collections.xml", "ref/dotnet/zh-hans/System.Collections.xml", - "ref/dotnet/zh-hant/System.Collections.xml", + "ref/dotnet/es/System.Collections.xml", + "runtimes/win8-aot/lib/netcore50/System.Collections.dll", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", - "runtimes/win8-aot/lib/netcore50/System.Collections.dll", - "System.Collections.nuspec" + "package/services/metadata/core-properties/b4f8061406e54dbda8f11b23186be11a.psmdcp", + "[Content_Types].xml" ] }, "System.Collections.Immutable/1.1.36": { "sha512": "MOlivTIeAIQPPMUPWIIoMCvZczjFRLYUWSYwqi1szu8QPyeIbsaPeI+hpXe1DzTxNwnRnmfYaoToi6kXIfSPNg==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Collections.Immutable.nuspec", + "License-Stable.rtf", "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll", "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml", - "License-Stable.rtf", "package/services/metadata/core-properties/c8b7b781850445db852bd2d848380ca6.psmdcp", - "System.Collections.Immutable.nuspec" + "[Content_Types].xml" ] }, "System.Diagnostics.Debug/4.0.10": { "sha512": "pi2KthuvI2LWV2c2V+fwReDsDiKpNl040h6DcwFOb59SafsPT/V1fCy0z66OKwysurJkBMmp5j5CBe3Um+ub0g==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Diagnostics.Debug.nuspec", "lib/DNXCore50/System.Diagnostics.Debug.dll", + "lib/netcore50/System.Diagnostics.Debug.dll", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", - "lib/netcore50/System.Diagnostics.Debug.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", - "package/services/metadata/core-properties/bfb05c26051f4a5f9015321db9cb045c.psmdcp", + "ref/dotnet/System.Diagnostics.Debug.dll", + "ref/dotnet/System.Diagnostics.Debug.xml", + "ref/dotnet/zh-hant/System.Diagnostics.Debug.xml", "ref/dotnet/de/System.Diagnostics.Debug.xml", - "ref/dotnet/es/System.Diagnostics.Debug.xml", "ref/dotnet/fr/System.Diagnostics.Debug.xml", "ref/dotnet/it/System.Diagnostics.Debug.xml", "ref/dotnet/ja/System.Diagnostics.Debug.xml", "ref/dotnet/ko/System.Diagnostics.Debug.xml", "ref/dotnet/ru/System.Diagnostics.Debug.xml", - "ref/dotnet/System.Diagnostics.Debug.dll", - "ref/dotnet/System.Diagnostics.Debug.xml", "ref/dotnet/zh-hans/System.Diagnostics.Debug.xml", - "ref/dotnet/zh-hant/System.Diagnostics.Debug.xml", + "ref/dotnet/es/System.Diagnostics.Debug.xml", + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", - "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll", - "System.Diagnostics.Debug.nuspec" + "package/services/metadata/core-properties/bfb05c26051f4a5f9015321db9cb045c.psmdcp", + "[Content_Types].xml" ] }, "System.Globalization/4.0.10": { "sha512": "kzRtbbCNAxdafFBDogcM36ehA3th8c1PGiz8QRkZn8O5yMBorDHSK8/TGJPYOaCS5zdsGk0u9qXHnW91nqy7fw==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Globalization.nuspec", + "lib/netcore50/System.Globalization.dll", "lib/DNXCore50/System.Globalization.dll", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", - "lib/netcore50/System.Globalization.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", - "package/services/metadata/core-properties/93bcad242a4e4ad7afd0b53244748763.psmdcp", + "ref/dotnet/System.Globalization.dll", + "ref/dotnet/System.Globalization.xml", + "ref/dotnet/zh-hant/System.Globalization.xml", "ref/dotnet/de/System.Globalization.xml", - "ref/dotnet/es/System.Globalization.xml", "ref/dotnet/fr/System.Globalization.xml", "ref/dotnet/it/System.Globalization.xml", "ref/dotnet/ja/System.Globalization.xml", "ref/dotnet/ko/System.Globalization.xml", "ref/dotnet/ru/System.Globalization.xml", - "ref/dotnet/System.Globalization.dll", - "ref/dotnet/System.Globalization.xml", "ref/dotnet/zh-hans/System.Globalization.xml", - "ref/dotnet/zh-hant/System.Globalization.xml", + "ref/dotnet/es/System.Globalization.xml", + "runtimes/win8-aot/lib/netcore50/System.Globalization.dll", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", - "runtimes/win8-aot/lib/netcore50/System.Globalization.dll", - "System.Globalization.nuspec" + "package/services/metadata/core-properties/93bcad242a4e4ad7afd0b53244748763.psmdcp", + "[Content_Types].xml" ] }, "System.Reflection.Metadata/1.1.0-alpha-00014": { "sha512": "rVeIWjVoLQS0aNrGdzndZReskyfxu4EfO9BKqT5GJt0YfGtlsHB1aDPnjl4jIBDTr+WJC9YsnZg8S5sKT1X42g==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Reflection.Metadata.nuspec", "lib/portable-net45+win8/System.Reflection.Metadata.dll", "lib/portable-net45+win8/System.Reflection.Metadata.pdb", "lib/portable-net45+win8/System.Reflection.Metadata.xml", "package/services/metadata/core-properties/a48ecf967b1540bba8edfe9af3a99ea5.psmdcp", - "System.Reflection.Metadata.nuspec" + "[Content_Types].xml" ] }, "System.Runtime/4.0.20": { "sha512": "X7N/9Bz7jVPorqdVFO86ns1sX6MlQM+WTxELtx+Z4VG45x9+LKmWH0GRqjgKprUnVuwmfB9EJ9DQng14Z7/zwg==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Runtime.nuspec", + "lib/netcore50/System.Runtime.dll", "lib/DNXCore50/System.Runtime.dll", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", - "lib/netcore50/System.Runtime.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", - "package/services/metadata/core-properties/d1ded52f75da4446b1c962f9292aa3ef.psmdcp", + "ref/dotnet/System.Runtime.dll", + "ref/dotnet/System.Runtime.xml", + "ref/dotnet/zh-hant/System.Runtime.xml", "ref/dotnet/de/System.Runtime.xml", - "ref/dotnet/es/System.Runtime.xml", "ref/dotnet/fr/System.Runtime.xml", "ref/dotnet/it/System.Runtime.xml", "ref/dotnet/ja/System.Runtime.xml", "ref/dotnet/ko/System.Runtime.xml", "ref/dotnet/ru/System.Runtime.xml", - "ref/dotnet/System.Runtime.dll", - "ref/dotnet/System.Runtime.xml", "ref/dotnet/zh-hans/System.Runtime.xml", - "ref/dotnet/zh-hant/System.Runtime.xml", + "ref/dotnet/es/System.Runtime.xml", + "runtimes/win8-aot/lib/netcore50/System.Runtime.dll", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", - "runtimes/win8-aot/lib/netcore50/System.Runtime.dll", - "System.Runtime.nuspec" + "package/services/metadata/core-properties/d1ded52f75da4446b1c962f9292aa3ef.psmdcp", + "[Content_Types].xml" ] }, "System.Runtime.Extensions/4.0.10": { "sha512": "5dsEwf3Iml7d5OZeT20iyOjT+r+okWpN7xI2v+R4cgd3WSj4DeRPTvPFjDpacbVW4skCAZ8B9hxXJYgkCFKJ1A==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Runtime.Extensions.nuspec", + "lib/netcore50/System.Runtime.Extensions.dll", "lib/DNXCore50/System.Runtime.Extensions.dll", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", - "lib/netcore50/System.Runtime.Extensions.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", - "package/services/metadata/core-properties/c7fee76a13d04c7ea49fb1a24c184f37.psmdcp", + "ref/dotnet/System.Runtime.Extensions.dll", + "ref/dotnet/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hant/System.Runtime.Extensions.xml", "ref/dotnet/de/System.Runtime.Extensions.xml", - "ref/dotnet/es/System.Runtime.Extensions.xml", "ref/dotnet/fr/System.Runtime.Extensions.xml", "ref/dotnet/it/System.Runtime.Extensions.xml", "ref/dotnet/ja/System.Runtime.Extensions.xml", "ref/dotnet/ko/System.Runtime.Extensions.xml", "ref/dotnet/ru/System.Runtime.Extensions.xml", - "ref/dotnet/System.Runtime.Extensions.dll", - "ref/dotnet/System.Runtime.Extensions.xml", "ref/dotnet/zh-hans/System.Runtime.Extensions.xml", - "ref/dotnet/zh-hant/System.Runtime.Extensions.xml", + "ref/dotnet/es/System.Runtime.Extensions.xml", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", - "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll", - "System.Runtime.Extensions.nuspec" + "package/services/metadata/core-properties/c7fee76a13d04c7ea49fb1a24c184f37.psmdcp", + "[Content_Types].xml" ] }, "System.Threading/4.0.10": { "sha512": "0w6pRxIEE7wuiOJeKabkDgeIKmqf4ER1VNrs6qFwHnooEE78yHwi/bKkg5Jo8/pzGLm0xQJw0nEmPXt1QBAIUA==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "System.Threading.nuspec", "lib/DNXCore50/System.Threading.dll", + "lib/netcore50/System.Threading.dll", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", - "lib/netcore50/System.Threading.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", - "package/services/metadata/core-properties/c17c3791d8fa4efbb8aded2ca8c71fbe.psmdcp", + "ref/dotnet/System.Threading.dll", + "ref/dotnet/System.Threading.xml", + "ref/dotnet/zh-hant/System.Threading.xml", "ref/dotnet/de/System.Threading.xml", - "ref/dotnet/es/System.Threading.xml", "ref/dotnet/fr/System.Threading.xml", "ref/dotnet/it/System.Threading.xml", "ref/dotnet/ja/System.Threading.xml", "ref/dotnet/ko/System.Threading.xml", "ref/dotnet/ru/System.Threading.xml", - "ref/dotnet/System.Threading.dll", - "ref/dotnet/System.Threading.xml", "ref/dotnet/zh-hans/System.Threading.xml", - "ref/dotnet/zh-hant/System.Threading.xml", + "ref/dotnet/es/System.Threading.xml", + "runtimes/win8-aot/lib/netcore50/System.Threading.dll", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", - "runtimes/win8-aot/lib/netcore50/System.Threading.dll", - "System.Threading.nuspec" + "package/services/metadata/core-properties/c17c3791d8fa4efbb8aded2ca8c71fbe.psmdcp", + "[Content_Types].xml" ] }, "xunit/1.9.2": { "sha512": "c1wppJtYPUGPHVP9U1wjmfii4553MuQSXkAt8rudkXW+eUFJxOOfDvhBJ6S0YHHDMFEJwiMN770AT4Lno8EBpw==", "type": "Package", "files": [ - "[Content_Types].xml", "_rels/.rels", + "xunit.nuspec", "lib/net20/xunit.dll", "lib/net20/xunit.dll.tdnet", + "lib/net20/xunit.xml", "lib/net20/xunit.runner.msbuild.dll", "lib/net20/xunit.runner.tdnet.dll", "lib/net20/xunit.runner.utility.dll", - "lib/net20/xunit.xml", "package/services/metadata/core-properties/cb77589bcde944baab7b67d60ca583c7.psmdcp", - "xunit.nuspec" + "[Content_Types].xml" ] } },