Update launch settings for ApplicationUrl handling
This commit is contained in:
parent
56a56aa085
commit
c1fff9649a
5 changed files with 117 additions and 5 deletions
|
@ -0,0 +1,9 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
|
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;alpine.3.6-x64</RuntimeIdentifiers>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,16 @@
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
namespace MSBuildTestApp
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
var message = Environment.GetEnvironmentVariable("ASPNETCORE_URLS");
|
||||||
|
Console.WriteLine(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:49850/",
|
||||||
|
"sslPort": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"First": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "http://localhost:12345/"
|
||||||
|
},
|
||||||
|
"applicationUrl": "http://localhost:67890/"
|
||||||
|
},
|
||||||
|
"Second": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"applicationUrl": "http://localhost:54321/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,11 @@ namespace Microsoft.DotNet.Tools.Run.LaunchSettings
|
||||||
{
|
{
|
||||||
var config = model.ToObject<ProjectLaunchSettingsModel>();
|
var config = model.ToObject<ProjectLaunchSettingsModel>();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(config.ApplicationUrl))
|
||||||
|
{
|
||||||
|
command.EnvironmentVariable("ASPNETCORE_URLS", config.ApplicationUrl);
|
||||||
|
}
|
||||||
|
|
||||||
//For now, ignore everything but the environment variables section
|
//For now, ignore everything but the environment variables section
|
||||||
|
|
||||||
foreach (var entry in config.EnvironmentVariables)
|
foreach (var entry in config.EnvironmentVariables)
|
||||||
|
@ -24,11 +29,6 @@ namespace Microsoft.DotNet.Tools.Run.LaunchSettings
|
||||||
command.EnvironmentVariable(entry.Key, value);
|
command.EnvironmentVariable(entry.Key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(config.ApplicationUrl))
|
|
||||||
{
|
|
||||||
command.EnvironmentVariable("ASPNETCORE_URLS", config.ApplicationUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new LaunchSettingsApplyResult(true, null, config.LaunchUrl);
|
return new LaunchSettingsApplyResult(true, null, config.LaunchUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -364,6 +364,66 @@ namespace Microsoft.DotNet.Cli.Run.Tests
|
||||||
cmd.StdErr.Should().BeEmpty();
|
cmd.StdErr.Should().BeEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ItPrefersTheValueOfApplicationUrlFromEnvironmentVariablesOverTheProperty()
|
||||||
|
{
|
||||||
|
var testAppName = "AppWithApplicationUrlInLaunchSettings";
|
||||||
|
var testInstance = TestAssets.Get(testAppName)
|
||||||
|
.CreateInstance()
|
||||||
|
.WithSourceFiles();
|
||||||
|
|
||||||
|
var testProjectDirectory = testInstance.Root.FullName;
|
||||||
|
|
||||||
|
new RestoreCommand()
|
||||||
|
.WithWorkingDirectory(testProjectDirectory)
|
||||||
|
.Execute("/p:SkipInvalidConfigurations=true")
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
|
new BuildCommand()
|
||||||
|
.WithWorkingDirectory(testProjectDirectory)
|
||||||
|
.Execute()
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
|
var cmd = new RunCommand()
|
||||||
|
.WithWorkingDirectory(testProjectDirectory)
|
||||||
|
.ExecuteWithCapturedOutput("--launch-profile First");
|
||||||
|
|
||||||
|
cmd.Should().Pass()
|
||||||
|
.And.HaveStdOutContaining("http://localhost:12345/");
|
||||||
|
|
||||||
|
cmd.StdErr.Should().BeEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ItUsesTheValueOfApplicationUrlIfTheEnvironmentVariableIsNotSet()
|
||||||
|
{
|
||||||
|
var testAppName = "AppWithApplicationUrlInLaunchSettings";
|
||||||
|
var testInstance = TestAssets.Get(testAppName)
|
||||||
|
.CreateInstance()
|
||||||
|
.WithSourceFiles();
|
||||||
|
|
||||||
|
var testProjectDirectory = testInstance.Root.FullName;
|
||||||
|
|
||||||
|
new RestoreCommand()
|
||||||
|
.WithWorkingDirectory(testProjectDirectory)
|
||||||
|
.Execute("/p:SkipInvalidConfigurations=true")
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
|
new BuildCommand()
|
||||||
|
.WithWorkingDirectory(testProjectDirectory)
|
||||||
|
.Execute()
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
|
var cmd = new RunCommand()
|
||||||
|
.WithWorkingDirectory(testProjectDirectory)
|
||||||
|
.ExecuteWithCapturedOutput("--launch-profile Second");
|
||||||
|
|
||||||
|
cmd.Should().Pass()
|
||||||
|
.And.HaveStdOutContaining("http://localhost:54321/");
|
||||||
|
|
||||||
|
cmd.StdErr.Should().BeEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ItGivesAnErrorWhenTheLaunchProfileNotFound()
|
public void ItGivesAnErrorWhenTheLaunchProfileNotFound()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue