dotnet crashes with an unresolved 'platform' dependency.
Fixed by calling TryGetValue instead of a dictionary indexer when looking up platform dependencies in ProjectContextBuilder. Fix #2693
This commit is contained in:
parent
6482aa0221
commit
17175864cf
5 changed files with 66 additions and 1 deletions
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
|
||||
namespace ConsoleApplication
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Hello World!");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"version": "1.0.0-*",
|
||||
"compilationOptions": {
|
||||
"emitEntryPoint": true
|
||||
},
|
||||
"dependencies": {
|
||||
"ThisIsNotARealDependencyAndIfSomeoneGoesAndAddsAProjectWithThisNameIWillFindThemAndPunishThem": {
|
||||
"type": "platform",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp1.0": {
|
||||
"imports": "dnxcore50"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -277,7 +277,7 @@ namespace Microsoft.DotNet.ProjectModel
|
|||
|
||||
if (platformDependency != null)
|
||||
{
|
||||
platformLibrary = libraries[new LibraryKey(platformDependency.Value.Name)];
|
||||
libraries.TryGetValue(new LibraryKey(platformDependency.Value.Name), out platformLibrary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
36
test/dotnet.Tests/GivenThatDotNetRunsCommands.cs
Normal file
36
test/dotnet.Tests/GivenThatDotNetRunsCommands.cs
Normal file
|
@ -0,0 +1,36 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System.IO;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.DotNet.Tests
|
||||
{
|
||||
public class GivenThatDotNetRunsCommands : TestBase
|
||||
{
|
||||
[Fact]
|
||||
public void UnresolvedPlatformReferencesFailAsExpected()
|
||||
{
|
||||
var testAssetsManager = GetTestGroupTestAssetsManager("NonRestoredTestProjects");
|
||||
var testInstance = testAssetsManager.CreateTestInstance("TestProjectWithUnresolvedPlatformDependency");
|
||||
|
||||
new RestoreCommand()
|
||||
.WithWorkingDirectory(testInstance.TestRoot)
|
||||
.Execute()
|
||||
.Should()
|
||||
.Fail();
|
||||
new DirectoryInfo(testInstance.TestRoot)
|
||||
.Should()
|
||||
.HaveFile("project.lock.json");
|
||||
|
||||
new DotnetCommand()
|
||||
.ExecuteWithCapturedOutput("crash")
|
||||
.Should()
|
||||
.Fail()
|
||||
.And
|
||||
.HaveStdErrContaining("No executable found matching command \"dotnet-crash\"");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue