private void GetPackageNameAndFramework(string key, out string packageName, out string frameworkVariant )
{
key = NormalizeOuptutKey(key);
var k = key.SplitToList(',', ' ');
// if there are more than two items here, then this is not valid.
packageName = "default";
frameworkVariant = "native";
switch (k.Count) {
case 0:
// default name and framework.
break;
case 1:
if (_nugetPackages.Keys.Contains(k[0])) {
packageName = k[0];
} else {
frameworkVariant = k[0];
}
break;
case 2:
if (_nugetPackages.Keys.Contains(k[0])) {
packageName = k[0];
frameworkVariant = k[1];
} else {
if (_nugetPackages.Keys.Contains(k[1])) {
frameworkVariant = k[0];
packageName = k[1];
} else {
FailAlways(Event<SourceError>.Raise("AP104", SourceLocation.Unknowns, "Two parameters specified for project, neither of which is an output-package"));
}
}
break;
default:
FailAlways(Event<SourceError>.Raise("AP105", SourceLocation.Unknowns, "Project references can only contain up to two pivots (output-package and framework)"));
break;
}
}