提交 a7382f41 编写于 作者: C Charles Stoner

Merge pull request #5461 from cston/ng

Allow #r package reference without explicit version
......@@ -155,8 +155,11 @@ public void ParsePackageNameAndVersion()
ParseInvalidPackageReference("nuget:");
ParseInvalidPackageReference("NUGET:");
ParseInvalidPackageReference("nugetA/1");
ParseInvalidPackageReference("nuget:A");
ParseInvalidPackageReference("nuget:A.B");
ParseValidPackageReference("nuget:A", "A", "");
ParseValidPackageReference("nuget:A.B", "A.B", "");
ParseValidPackageReference("nuget: ", " ", "");
ParseInvalidPackageReference("nuget:A/");
ParseInvalidPackageReference("nuget:A//1.0");
ParseInvalidPackageReference("nuget:/1.0.0");
......@@ -199,6 +202,15 @@ public void WriteProjectJson()
""frameworks"": {
""net46"": {}
}
}");
WriteProjectJsonPackageReference("A", "",
@"{
""dependencies"": {
""A"": """"
},
""frameworks"": {
""net46"": {}
}
}");
WriteProjectJsonPackageReference("\n\t", "\"'",
@"{
......
......@@ -2,6 +2,7 @@
using System;
using System.Collections.Immutable;
using System.Diagnostics;
namespace Microsoft.CodeAnalysis.Scripting.Hosting
{
......@@ -10,20 +11,30 @@ internal abstract class NuGetPackageResolver
private const string ReferencePrefix = "nuget:";
/// <summary>
/// Syntax is "nuget:id/version".
/// Syntax is "nuget:name[/version]".
/// </summary>
internal static bool TryParsePackageReference(string reference, out string name, out string version)
{
if (reference.StartsWith(ReferencePrefix, StringComparison.Ordinal))
{
var parts = reference.Substring(ReferencePrefix.Length).Split('/');
if ((parts.Length == 2) &&
(parts[0].Length > 0) &&
(parts[1].Length > 0))
Debug.Assert(parts.Length > 0);
name = parts[0];
if (name.Length > 0)
{
name = parts[0];
version = parts[1];
return true;
switch (parts.Length)
{
case 1:
version = string.Empty;
return true;
case 2:
version = parts[1];
if (version.Length > 0)
{
return true;
}
break;
}
}
}
name = null;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册