Compare commits

...

12 Commits

  1. 2
      Directory.Build.props
  2. 2
      eng/common/dotnet-install.sh
  3. 2
      eng/common/tools.ps1
  4. 2
      eng/common/tools.sh
  5. 6
      global.json
  6. 3
      src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs
  7. 2
      src/Microsoft.Tye.Core/Microsoft.Tye.Core.csproj
  8. 2
      src/Microsoft.Tye.Extensions/Microsoft.Tye.Extensions.csproj
  9. 2
      src/Microsoft.Tye.Hosting.Diagnostics/Microsoft.Tye.Hosting.Diagnostics.csproj
  10. 2
      src/Microsoft.Tye.Hosting/DockerRunner.cs
  11. 3
      src/Microsoft.Tye.Hosting/HttpProxyService.cs
  12. 6
      src/Microsoft.Tye.Hosting/Infrastructure/ProxyExtensions.cs
  13. 18
      src/Microsoft.Tye.Hosting/Infrastructure/ServiceLoggerProvider.cs
  14. 2
      src/Microsoft.Tye.Hosting/Microsoft.Tye.Hosting.csproj
  15. 12
      src/Microsoft.Tye.Hosting/ProxyService.cs
  16. 4
      src/Microsoft.Tye.Hosting/TransformProjectsIntoContainers.cs
  17. 7
      src/Microsoft.Tye.Hosting/TyeHost.cs
  18. 2
      src/Microsoft.Tye.Proxy/Microsoft.Tye.Proxy.csproj
  19. 14
      src/Microsoft.Tye.Proxy/Program.cs
  20. 5
      src/shared/KubectlDetector.cs
  21. 2
      src/tye-diag-agent/tye-diag-agent.csproj
  22. 3
      src/tye/InitHost.cs
  23. 2
      src/tye/tye.csproj
  24. 6
      test/E2ETest/ApplicationFactoryTests.cs
  25. 2
      test/E2ETest/Microsoft.Tye.E2ETests.csproj
  26. 4
      test/E2ETest/TyeBuildTests.Dockerfile.cs
  27. 5
      test/E2ETest/TyeRunTests.cs
  28. 2
      test/E2ETest/testassets/projects/Console.Normalization.svc.Name/Console.Normalization.svc.Name.csproj
  29. 2
      test/E2ETest/testassets/projects/apps-with-ingress/ApplicationA/ApplicationA.csproj
  30. 2
      test/E2ETest/testassets/projects/apps-with-ingress/ApplicationB/ApplicationB.csproj
  31. 2
      test/E2ETest/testassets/projects/apps-with-ingress/ApplicationC-UI/ApplicationC-UI.csproj
  32. 2
      test/E2ETest/testassets/projects/azure-functions/backend/backend.csproj
  33. 2
      test/E2ETest/testassets/projects/azure-functions/frontend/frontend.csproj
  34. 2
      test/E2ETest/testassets/projects/dapr/dapr.csproj
  35. 2
      test/E2ETest/testassets/projects/dockerfile/frontend/frontend.csproj
  36. 2
      test/E2ETest/testassets/projects/frontend-backend/backend/backend-baseimage.csproj
  37. 2
      test/E2ETest/testassets/projects/frontend-backend/backend/backend.csproj
  38. 2
      test/E2ETest/testassets/projects/frontend-backend/frontend/frontend.csproj
  39. 2
      test/E2ETest/testassets/projects/generate-connectionstring-dependency/frontend/frontend.csproj
  40. 2
      test/E2ETest/testassets/projects/generate-named-binding/frontend/frontend.csproj
  41. 2
      test/E2ETest/testassets/projects/generate-uri-dependency/frontend/frontend.csproj
  42. 2
      test/E2ETest/testassets/projects/health-checks/api/api.csproj
  43. 2
      test/E2ETest/testassets/projects/multi-phase-dockerfile/multi-phase-dockerfile.csproj
  44. 2
      test/E2ETest/testassets/projects/multi-project/backend/backend.csproj
  45. 2
      test/E2ETest/testassets/projects/multi-project/frontend/frontend.csproj
  46. 2
      test/E2ETest/testassets/projects/multi-project/worker/worker.csproj
  47. 2
      test/E2ETest/testassets/projects/multi-targetframeworks/multi-targetframeworks/multi-targetframeworks.csproj
  48. 2
      test/E2ETest/testassets/projects/multi-targetframeworks/tye-with-netcoreapp31.yaml
  49. 2
      test/E2ETest/testassets/projects/multirepo/results/results.csproj
  50. 2
      test/E2ETest/testassets/projects/multirepo/vote/vote.csproj
  51. 2
      test/E2ETest/testassets/projects/multirepo/worker/worker.csproj
  52. 2
      test/E2ETest/testassets/projects/nginx-ingress/ApplicationA/ApplicationA.csproj
  53. 2
      test/E2ETest/testassets/projects/nginx-ingress/ApplicationB/ApplicationB.csproj
  54. 2
      test/E2ETest/testassets/projects/project-types/app/app.csproj
  55. 2
      test/E2ETest/testassets/projects/project-types/class-library/class-library.csproj
  56. 2
      test/E2ETest/testassets/projects/project-types/test-project/test-project.csproj
  57. 2
      test/E2ETest/testassets/projects/single-phase-dockerfile-args-duplicates/single-phase-dockerfile-args.csproj
  58. 2
      test/E2ETest/testassets/projects/single-phase-dockerfile-args/single-phase-dockerfile-args.csproj
  59. 2
      test/E2ETest/testassets/projects/single-phase-dockerfile-multi-args/single-phase-dockerfile-multi-args.csproj
  60. 2
      test/E2ETest/testassets/projects/single-phase-dockerfile/single-phase-dockerfile.csproj
  61. 2
      test/E2ETest/testassets/projects/single-project/test-project/test-project.csproj
  62. 2
      test/E2ETest/testassets/projects/volume-test/volume-test.csproj
  63. 2
      test/E2ETest/testassets/projects/web-app/web-app.csproj
  64. 2
      test/Microsoft.Tye.Extensions.Configuration.Tests/Microsoft.Tye.Extensions.Configuration.Tests.csproj
  65. 2
      test/Test.Infrastructure/Test.Infrastructure.csproj
  66. 2
      test/UnitTests/Microsoft.Tye.UnitTests.csproj

2
Directory.Build.props

@ -20,7 +20,7 @@
<!-- Lots of our dependencies are not strong-named --> <!-- Lots of our dependencies are not strong-named -->
<NoWarn>$(NoWarn);8002</NoWarn> <NoWarn>$(NoWarn);8002</NoWarn>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<LangVersion>8.0</LangVersion> <LangVersion>10.0</LangVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(RepoRoot)test\Test.Infrastructure\Microsoft.AspNetCore.Testing.props" Condition=" '$(IsTestProject)' == 'true' " /> <Import Project="$(RepoRoot)test\Test.Infrastructure\Microsoft.AspNetCore.Testing.props" Condition=" '$(IsTestProject)' == 'true' " />

2
eng/common/dotnet-install.sh

@ -52,7 +52,7 @@ done
# Use uname to determine what the CPU is, see https://en.wikipedia.org/wiki/Uname#Examples # Use uname to determine what the CPU is, see https://en.wikipedia.org/wiki/Uname#Examples
cpuname=$(uname -m) cpuname=$(uname -m)
case $cpuname in case $cpuname in
aarch64) aarch64|arm64)
buildarch=arm64 buildarch=arm64
;; ;;
amd64|x86_64) amd64|x86_64)

2
eng/common/tools.ps1

@ -560,7 +560,7 @@ function InitializeBuildTool() {
ExitWithExitCode 1 ExitWithExitCode 1
} }
$dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet')
$buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'netcoreapp3.1' } $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net6.0' }
} elseif ($msbuildEngine -eq "vs") { } elseif ($msbuildEngine -eq "vs") {
try { try {
$msbuildPath = InitializeVisualStudioMSBuild -install:$restore $msbuildPath = InitializeVisualStudioMSBuild -install:$restore

2
eng/common/tools.sh

@ -306,7 +306,7 @@ function InitializeBuildTool {
# return values # return values
_InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildTool="$_InitializeDotNetCli/dotnet"
_InitializeBuildToolCommand="msbuild" _InitializeBuildToolCommand="msbuild"
_InitializeBuildToolFramework="netcoreapp3.1" _InitializeBuildToolFramework="net6.0"
} }
# Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116 # Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116

6
global.json

@ -1,12 +1,12 @@
{ {
"tools": { "tools": {
"dotnet": "6.0.100-preview.6.21355.2", "dotnet": "6.0.100-rc.2.21505.57",
"runtimes": { "runtimes": {
"dotnet": [ "dotnet": [
"3.1.14" "6.0.0-rc.2.21480.5"
], ],
"aspnetcore": [ "aspnetcore": [
"3.1.14" "6.0.0-rc.2.21480.10"
] ]
} }
}, },

3
src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs

@ -144,7 +144,8 @@ namespace Microsoft.Tye.ConfigModel
foreach (var probe in probes) foreach (var probe in probes)
{ {
context = new ValidationContext(probe.Probe!); context = new ValidationContext(probe.Probe!);
if (!Validator.TryValidateObject(probe.Probe, context, results, validateAllProperties: true)) // TODO: Investigate possible null.
if (!Validator.TryValidateObject(probe.Probe!, context, results, validateAllProperties: true))
{ {
throw new TyeYamlException( throw new TyeYamlException(
$"Probe '{probe.Name}' in service '{service.Name}' validation failed." + Environment.NewLine + $"Probe '{probe.Name}' in service '{service.Name}' validation failed." + Environment.NewLine +

2
src/Microsoft.Tye.Core/Microsoft.Tye.Core.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Tye</RootNamespace> <RootNamespace>Tye</RootNamespace>
<AssemblyName>Microsoft.Tye.Core</AssemblyName> <AssemblyName>Microsoft.Tye.Core</AssemblyName>
<PackageId>Microsoft.Tye.Core</PackageId> <PackageId>Microsoft.Tye.Core</PackageId>

2
src/Microsoft.Tye.Extensions/Microsoft.Tye.Extensions.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

2
src/Microsoft.Tye.Hosting.Diagnostics/Microsoft.Tye.Hosting.Diagnostics.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<Description>Diagnostics collector and exporter for .NET Core applications.</Description> <Description>Diagnostics collector and exporter for .NET Core applications.</Description>
<AssemblyName>Microsoft.Tye.Hosting.Diagnostics</AssemblyName> <AssemblyName>Microsoft.Tye.Hosting.Diagnostics</AssemblyName>
<PackageId>Microsoft.Tye.Hosting.Diagnostics</PackageId> <PackageId>Microsoft.Tye.Hosting.Diagnostics</PackageId>

2
src/Microsoft.Tye.Hosting/DockerRunner.cs

@ -62,7 +62,7 @@ namespace Microsoft.Tye.Hosting
// Inject a proxy per non-container service. This allows the container to use normal host names within the // Inject a proxy per non-container service. This allows the container to use normal host names within the
// container network to talk to services on the host // container network to talk to services on the host
var proxyContainer = new DockerRunInfo($"mcr.microsoft.com/dotnet/core/sdk:3.1", "dotnet Microsoft.Tye.Proxy.dll") var proxyContainer = new DockerRunInfo($"mcr.microsoft.com/dotnet/sdk:6.0", "dotnet Microsoft.Tye.Proxy.dll")
{ {
WorkingDirectory = "/app", WorkingDirectory = "/app",
NetworkAlias = service.Description.Name, NetworkAlias = service.Description.Name,

3
src/Microsoft.Tye.Hosting/HttpProxyService.cs

@ -178,7 +178,8 @@ namespace Microsoft.Tye.Hosting
} }
var uri = new UriBuilder(uris[next].Uri) var uri = new UriBuilder(uris[next].Uri)
{ {
Path = rule.PreservePath ? $"{context.Request.Path}" : (string)context.Request.RouteValues["path"] ?? "/", // TODO: Investigate possible null.
Path = rule.PreservePath ? $"{context.Request.Path}" : (string)context.Request!.RouteValues["path"]! ?? "/",
Query = context.Request.QueryString.Value Query = context.Request.QueryString.Value
}; };

6
src/Microsoft.Tye.Hosting/Infrastructure/ProxyExtensions.cs

@ -88,7 +88,8 @@ namespace Microsoft.AspNetCore.Proxy
// Append request forwarding headers // Append request forwarding headers
requestMessage.Headers.TryAddWithoutValidation("Via", $"{context.Request.Protocol} Tye"); requestMessage.Headers.TryAddWithoutValidation("Via", $"{context.Request.Protocol} Tye");
requestMessage.Headers.TryAddWithoutValidation("X-Forwarded-For", context.Connection.RemoteIpAddress.ToString()); // TODO: Investigate possible null.
requestMessage.Headers.TryAddWithoutValidation("X-Forwarded-For", context.Connection!.RemoteIpAddress!.ToString());
requestMessage.Headers.TryAddWithoutValidation("X-Forwarded-Proto", request.Scheme); requestMessage.Headers.TryAddWithoutValidation("X-Forwarded-Proto", request.Scheme);
requestMessage.Headers.TryAddWithoutValidation("X-Forwarded-Host", request.Host.ToUriComponent()); requestMessage.Headers.TryAddWithoutValidation("X-Forwarded-Host", request.Host.ToUriComponent());
@ -129,7 +130,8 @@ namespace Microsoft.AspNetCore.Proxy
} }
AppendHeaderValue(client.Options, context.Request.Headers, "Via", context.Request.Protocol); AppendHeaderValue(client.Options, context.Request.Headers, "Via", context.Request.Protocol);
AppendHeaderValue(client.Options, context.Request.Headers, "X-Forwarded-For", context.Connection.RemoteIpAddress.ToString()); // TODO: Investigate possible null.
AppendHeaderValue(client.Options, context.Request.Headers, "X-Forwarded-For", context.Connection!.RemoteIpAddress!.ToString());
AppendHeaderValue(client.Options, context.Request.Headers, "X-Forwarded-Proto", context.Request.Scheme); AppendHeaderValue(client.Options, context.Request.Headers, "X-Forwarded-Proto", context.Request.Scheme);
AppendHeaderValue(client.Options, context.Request.Headers, "X-Forwarded-Host", context.Request.Host.ToUriComponent()); AppendHeaderValue(client.Options, context.Request.Headers, "X-Forwarded-Host", context.Request.Host.ToUriComponent());

18
src/Microsoft.Tye.Hosting/Infrastructure/ServiceLoggerProvider.cs

@ -37,9 +37,9 @@ namespace Microsoft.Tye.Hosting
_logs = logs; _logs = logs;
} }
public IDisposable? BeginScope<TState>(TState state) public IDisposable BeginScope<TState>(TState state)
{ {
return null; return new NoOpScope();
} }
public bool IsEnabled(LogLevel logLevel) public bool IsEnabled(LogLevel logLevel)
@ -47,15 +47,25 @@ namespace Microsoft.Tye.Hosting
return true; return true;
} }
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter) public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception, string>? formatter)
{ {
_logs.OnNext($"[{logLevel}]: {formatter(state, exception)}"); if (formatter != null && exception != null)
{
_logs.OnNext($"[{logLevel}]: {formatter(state, exception)}");
}
if (exception != null) if (exception != null)
{ {
_logs.OnNext(exception.ToString()); _logs.OnNext(exception.ToString());
} }
} }
private sealed class NoOpScope : IDisposable
{
public void Dispose()
{
}
}
} }
} }
} }

2
src/Microsoft.Tye.Hosting/Microsoft.Tye.Hosting.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<Description>Orchestration host APIs.</Description> <Description>Orchestration host APIs.</Description>
<AssemblyName>Microsoft.Tye.Hosting</AssemblyName> <AssemblyName>Microsoft.Tye.Hosting</AssemblyName>
<PackageId>Microsoft.Tye.Hosting</PackageId> <PackageId>Microsoft.Tye.Hosting</PackageId>

12
src/Microsoft.Tye.Hosting/ProxyService.cs

@ -94,7 +94,8 @@ namespace Microsoft.Tye.Hosting
return; return;
} }
using var _ = cts.Token.Register(() => notificationFeature.RequestClose()); // TODO: Investigate possible null.
using var _ = cts.Token.Register(() => notificationFeature!.RequestClose());
NetworkStream? targetStream = null; NetworkStream? targetStream = null;
@ -131,11 +132,13 @@ namespace Microsoft.Tye.Hosting
{ {
_logger.LogDebug("Proxying traffic to {ServiceName} {ExternalPort}:{InternalPort}", service.Description.Name, binding.Port, ports[next]); _logger.LogDebug("Proxying traffic to {ServiceName} {ExternalPort}:{InternalPort}", service.Description.Name, binding.Port, ports[next]);
// TODO: Investigate possible null.
// external -> internal // external -> internal
var reading = Task.Run(() => connection.Transport.Input.CopyToAsync(targetStream, notificationFeature.ConnectionClosedRequested)); var reading = Task.Run(() => connection.Transport.Input.CopyToAsync(targetStream, notificationFeature!.ConnectionClosedRequested));
// TODO: Investigate possible null.
// internal -> external // internal -> external
var writing = Task.Run(() => targetStream.CopyToAsync(connection.Transport.Output, notificationFeature.ConnectionClosedRequested)); var writing = Task.Run(() => targetStream.CopyToAsync(connection.Transport.Output, notificationFeature!.ConnectionClosedRequested));
await Task.WhenAll(reading, writing); await Task.WhenAll(reading, writing);
} }
@ -149,7 +152,8 @@ namespace Microsoft.Tye.Hosting
} }
catch (OperationCanceledException ex) catch (OperationCanceledException ex)
{ {
if (!notificationFeature.ConnectionClosedRequested.IsCancellationRequested) // TODO: Investigate possible null.
if (!notificationFeature!.ConnectionClosedRequested.IsCancellationRequested)
{ {
_logger.LogDebug(0, ex, "Proxy error for service {ServiceName}", service.Description.Name); _logger.LogDebug(0, ex, "Proxy error for service {ServiceName}", service.Description.Name);
} }

4
src/Microsoft.Tye.Hosting/TransformProjectsIntoContainers.cs

@ -87,10 +87,10 @@ namespace Microsoft.Tye.Hosting
// This is .NET specific // This is .NET specific
var userSecretStore = GetUserSecretsPathFromSecrets(); var userSecretStore = GetUserSecretsPathFromSecrets();
Directory.CreateDirectory(userSecretStore);
if (!string.IsNullOrEmpty(userSecretStore)) if (!string.IsNullOrEmpty(userSecretStore))
{ {
Directory.CreateDirectory(userSecretStore);
// Map the user secrets on this drive to user secrets // Map the user secrets on this drive to user secrets
dockerRunInfo.VolumeMappings.Add(new DockerVolume(source: userSecretStore, name: null, target: "/root/.microsoft/usersecrets", readOnly: true)); dockerRunInfo.VolumeMappings.Add(new DockerVolume(source: userSecretStore, name: null, target: "/root/.microsoft/usersecrets", readOnly: true));
} }

7
src/Microsoft.Tye.Hosting/TyeHost.cs

@ -102,7 +102,8 @@ namespace Microsoft.Tye.Hosting
await app.StartAsync(); await app.StartAsync();
_addresses = DashboardWebApplication.Services.GetRequiredService<IServer>().Features.Get<IServerAddressesFeature>().Addresses; // TODO: Investigate possible null.
_addresses = DashboardWebApplication.Services.GetRequiredService<IServer>().Features.Get<IServerAddressesFeature>()!.Addresses;
_logger.LogInformation("Dashboard running on {Address}", _addresses.First()); _logger.LogInformation("Dashboard running on {Address}", _addresses.First());
@ -333,7 +334,7 @@ namespace Microsoft.Tye.Hosting
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Error while shutting down"); _logger?.LogError(ex, "Error while shutting down");
} }
finally finally
{ {
@ -375,7 +376,7 @@ namespace Microsoft.Tye.Hosting
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Error launching dashboard."); _logger?.LogError(ex, "Error launching dashboard.");
} }
} }

2
src/Microsoft.Tye.Proxy/Microsoft.Tye.Proxy.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

14
src/Microsoft.Tye.Proxy/Program.cs

@ -64,7 +64,8 @@ namespace Microsoft.Tye.Proxy
logger.LogDebug("Attempting to connect to {ServiceName} listening on {Port}:{ExternalPort}", serviceName, mapping.Port, mapping.ExternalPort); logger.LogDebug("Attempting to connect to {ServiceName} listening on {Port}:{ExternalPort}", serviceName, mapping.Port, mapping.ExternalPort);
await target.ConnectAsync(containerHost, mapping.ExternalPort); // TODO: Investigate null host.
await target.ConnectAsync(containerHost!, mapping.ExternalPort);
logger.LogDebug("Successfully connected to {ServiceName} listening on {Port}:{ExternalPort}", serviceName, mapping.Port, mapping.ExternalPort); logger.LogDebug("Successfully connected to {ServiceName} listening on {Port}:{ExternalPort}", serviceName, mapping.Port, mapping.ExternalPort);
@ -87,11 +88,13 @@ namespace Microsoft.Tye.Proxy
{ {
logger.LogDebug("Proxying traffic to {ServiceName} {Port}:{ExternalPort}", serviceName, mapping.Port, mapping.ExternalPort); logger.LogDebug("Proxying traffic to {ServiceName} {Port}:{ExternalPort}", serviceName, mapping.Port, mapping.ExternalPort);
// external -> internal // TODO: Investigate possible null.
var reading = Task.Run(() => connection.Transport.Input.CopyToAsync(targetStream, notificationFeature.ConnectionClosedRequested)); // external -> internal
var reading = Task.Run(() => connection.Transport.Input.CopyToAsync(targetStream, notificationFeature!.ConnectionClosedRequested));
// TODO: Investigate possible null.
// internal -> external // internal -> external
var writing = Task.Run(() => targetStream.CopyToAsync(connection.Transport.Output, notificationFeature.ConnectionClosedRequested)); var writing = Task.Run(() => targetStream.CopyToAsync(connection.Transport.Output, notificationFeature!.ConnectionClosedRequested));
await Task.WhenAll(reading, writing); await Task.WhenAll(reading, writing);
} }
@ -105,7 +108,8 @@ namespace Microsoft.Tye.Proxy
} }
catch (OperationCanceledException ex) catch (OperationCanceledException ex)
{ {
if (!notificationFeature.ConnectionClosedRequested.IsCancellationRequested) // TODO: Investigate possible null.
if (!notificationFeature!.ConnectionClosedRequested.IsCancellationRequested)
{ {
logger.LogDebug(0, ex, "Proxy error for service {ServiceName}", serviceName); logger.LogDebug(0, ex, "Proxy error for service {ServiceName}", serviceName);
} }

5
src/shared/KubectlDetector.cs

@ -47,8 +47,9 @@ namespace Microsoft.Tye
{ {
continue; continue;
} }
var major = int.Parse(element.Value.GetProperty("major").GetString()); // TODO: Investigate possible null.
var minor = int.Parse(element.Value.GetProperty("minor").GetString().Trim('+')); var major = int.Parse(element.Value!.GetProperty("major")!.GetString()!);
var minor = int.Parse(element.Value!.GetProperty("minor")!.GetString()!.Trim('+'));
var version = new Version(major, minor); var version = new Version(major, minor);
return version; return version;
} }

2
src/tye-diag-agent/tye-diag-agent.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Worker"> <Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Microsoft.Tye</RootNamespace> <RootNamespace>Microsoft.Tye</RootNamespace>
</PropertyGroup> </PropertyGroup>

3
src/tye/InitHost.cs

@ -37,7 +37,8 @@ namespace Microsoft.Tye
throw new CommandException(errorMessage!); throw new CommandException(errorMessage!);
} }
path = new FileInfo(filePath); // TODO: Investigate possible null.
path = new FileInfo(filePath!);
} }
var template = @" var template = @"

2
src/tye/tye.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Microsoft.Tye</RootNamespace> <RootNamespace>Microsoft.Tye</RootNamespace>
<AssemblyName>tye</AssemblyName> <AssemblyName>tye</AssemblyName>
<PackageId>Microsoft.Tye</PackageId> <PackageId>Microsoft.Tye</PackageId>

6
test/E2ETest/ApplicationFactoryTests.cs

@ -135,14 +135,14 @@ services:
// Debug targets can be null if not specified, so make sure calling host.Start does not throw. // Debug targets can be null if not specified, so make sure calling host.Start does not throw.
var outputContext = new OutputContext(_sink, Verbosity.Debug); var outputContext = new OutputContext(_sink, Verbosity.Debug);
var projectFile = new FileInfo(yamlFile); var projectFile = new FileInfo(yamlFile);
var applicationBuilder = await ApplicationFactory.CreateAsync(outputContext, projectFile, "netcoreapp3.1"); var applicationBuilder = await ApplicationFactory.CreateAsync(outputContext, projectFile, "net6.0");
Assert.Single(applicationBuilder.Services); Assert.Single(applicationBuilder.Services);
var service = applicationBuilder.Services.Single(s => s.Name == "multi-targetframeworks"); var service = applicationBuilder.Services.Single(s => s.Name == "multi-targetframeworks");
var containsTargetFramework = ((DotnetProjectServiceBuilder)service).BuildProperties.TryGetValue("TargetFramework", out var targetFramework); var containsTargetFramework = ((DotnetProjectServiceBuilder)service).BuildProperties.TryGetValue("TargetFramework", out var targetFramework);
Assert.True(containsTargetFramework); Assert.True(containsTargetFramework);
Assert.Equal("netcoreapp3.1", targetFramework); Assert.Equal("net6.0", targetFramework);
} }
[Fact] [Fact]
@ -154,7 +154,7 @@ services:
// Debug targets can be null if not specified, so make sure calling host.Start does not throw. // Debug targets can be null if not specified, so make sure calling host.Start does not throw.
var outputContext = new OutputContext(_sink, Verbosity.Debug); var outputContext = new OutputContext(_sink, Verbosity.Debug);
var projectFile = new FileInfo(yamlFile); var projectFile = new FileInfo(yamlFile);
var applicationBuilder = await ApplicationFactory.CreateAsync(outputContext, projectFile, "netcoreapp3.1"); var applicationBuilder = await ApplicationFactory.CreateAsync(outputContext, projectFile, "net6.0");
Assert.Single(applicationBuilder.Services); Assert.Single(applicationBuilder.Services);
var service = applicationBuilder.Services.Single(s => s.Name == "multi-targetframeworks"); var service = applicationBuilder.Services.Single(s => s.Name == "multi-targetframeworks");

2
test/E2ETest/Microsoft.Tye.E2ETests.csproj

@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<AssemblyName>Microsoft.Tye.E2ETest</AssemblyName> <AssemblyName>Microsoft.Tye.E2ETest</AssemblyName>
<IsTestProject>true</IsTestProject> <IsTestProject>true</IsTestProject>
<IsUnitTestProject>true</IsUnitTestProject> <IsUnitTestProject>true</IsUnitTestProject>

4
test/E2ETest/TyeBuildTests.Dockerfile.cs

@ -226,7 +226,7 @@ namespace E2ETest
var projectFile = new FileInfo(Path.Combine(projectDirectory.DirectoryPath, "tye-no-buildproperties.yaml")); var projectFile = new FileInfo(Path.Combine(projectDirectory.DirectoryPath, "tye-no-buildproperties.yaml"));
var outputContext = new OutputContext(sink, Verbosity.Debug); var outputContext = new OutputContext(sink, Verbosity.Debug);
var application = await ApplicationFactory.CreateAsync(outputContext, projectFile, "netcoreapp3.1"); var application = await ApplicationFactory.CreateAsync(outputContext, projectFile, "net6.0");
application.Registry = new ContainerRegistry("test"); application.Registry = new ContainerRegistry("test");
@ -260,7 +260,7 @@ namespace E2ETest
var projectFile = new FileInfo(Path.Combine(projectDirectory.DirectoryPath, "tye-with-netcoreapp31.yaml")); var projectFile = new FileInfo(Path.Combine(projectDirectory.DirectoryPath, "tye-with-netcoreapp31.yaml"));
var outputContext = new OutputContext(sink, Verbosity.Debug); var outputContext = new OutputContext(sink, Verbosity.Debug);
var application = await ApplicationFactory.CreateAsync(outputContext, projectFile, "netcoreapp3.1"); var application = await ApplicationFactory.CreateAsync(outputContext, projectFile, "net6.0");
application.Registry = new ContainerRegistry("test"); application.Registry = new ContainerRegistry("test");

5
test/E2ETest/TyeRunTests.cs

@ -799,7 +799,8 @@ services:
[Fact] [Fact]
public async Task IngressAllIPTest() public async Task IngressAllIPTest()
{ {
await TestIngressIP($"'*'", GetLiveIPAddresses().FirstOrDefault()); // TODO: Possible null reference (the default case).
await TestIngressIP($"'*'", GetLiveIPAddresses().FirstOrDefault()!);
} }
@ -1137,7 +1138,7 @@ services:
var projectFile = new FileInfo(Path.Combine(projectDirectory.DirectoryPath, "tye-no-buildproperties.yaml")); var projectFile = new FileInfo(Path.Combine(projectDirectory.DirectoryPath, "tye-no-buildproperties.yaml"));
var outputContext = new OutputContext(_sink, Verbosity.Debug); var outputContext = new OutputContext(_sink, Verbosity.Debug);
var application = await ApplicationFactory.CreateAsync(outputContext, projectFile, "netcoreapp3.1"); var application = await ApplicationFactory.CreateAsync(outputContext, projectFile, "net6.0");
var handler = new HttpClientHandler var handler = new HttpClientHandler
{ {

2
test/E2ETest/testassets/projects/Console.Normalization.svc.Name/Console.Normalization.svc.Name.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/apps-with-ingress/ApplicationA/ApplicationA.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/apps-with-ingress/ApplicationB/ApplicationB.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/apps-with-ingress/ApplicationC-UI/ApplicationC-UI.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/azure-functions/backend/backend.csproj

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion> <AzureFunctionsVersion>v3</AzureFunctionsVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

2
test/E2ETest/testassets/projects/azure-functions/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Frontend</RootNamespace> <RootNamespace>Frontend</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/dapr/dapr.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/dockerfile/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Frontend</RootNamespace> <RootNamespace>Frontend</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/frontend-backend/backend/backend-baseimage.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Backend</RootNamespace> <RootNamespace>Backend</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/frontend-backend/backend/backend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Backend</RootNamespace> <RootNamespace>Backend</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/frontend-backend/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Frontend</RootNamespace> <RootNamespace>Frontend</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/generate-connectionstring-dependency/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/generate-named-binding/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/generate-uri-dependency/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/health-checks/api/api.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multi-phase-dockerfile/multi-phase-dockerfile.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>multi_phase_dockerfile</RootNamespace> <RootNamespace>multi_phase_dockerfile</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multi-project/backend/backend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Backend</RootNamespace> <RootNamespace>Backend</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multi-project/frontend/frontend.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

2
test/E2ETest/testassets/projects/multi-project/worker/worker.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Worker"> <Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<UserSecretsId>dotnet-worker-E4419EA1-F496-4FE1-A024-7E75E40B9E10</UserSecretsId> <UserSecretsId>dotnet-worker-E4419EA1-F496-4FE1-A024-7E75E40B9E10</UserSecretsId>
<RootNamespace>Worker</RootNamespace> <RootNamespace>Worker</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multi-targetframeworks/multi-targetframeworks/multi-targetframeworks.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netcoreapp3.1;netcoreapp2.1</TargetFrameworks> <TargetFrameworks>net6.0;netcoreapp2.1</TargetFrameworks>
<RootNamespace>MultiTargetFrameworks</RootNamespace> <RootNamespace>MultiTargetFrameworks</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multi-targetframeworks/tye-with-netcoreapp31.yaml

@ -6,4 +6,4 @@ services:
project: multi-targetframeworks/multi-targetframeworks.csproj project: multi-targetframeworks/multi-targetframeworks.csproj
buildProperties: buildProperties:
- name: TargetFramework - name: TargetFramework
value: netcoreapp3.1 value: net6.0

2
test/E2ETest/testassets/projects/multirepo/results/results.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Results</RootNamespace> <RootNamespace>Results</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multirepo/vote/vote.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>Vote</RootNamespace> <RootNamespace>Vote</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/multirepo/worker/worker.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<UserSecretsId>dotnet-worker-A47A7C4B-4BF2-4243-9BBE-E6B3CB3E9C6F</UserSecretsId> <UserSecretsId>dotnet-worker-A47A7C4B-4BF2-4243-9BBE-E6B3CB3E9C6F</UserSecretsId>
<RootNamespace>Worker</RootNamespace> <RootNamespace>Worker</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/nginx-ingress/ApplicationA/ApplicationA.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/nginx-ingress/ApplicationB/ApplicationB.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/project-types/app/app.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
test/E2ETest/testassets/projects/project-types/class-library/class-library.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>class_library</RootNamespace> <RootNamespace>class_library</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/project-types/test-project/test-project.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>test_project</RootNamespace> <RootNamespace>test_project</RootNamespace>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>

2
test/E2ETest/testassets/projects/single-phase-dockerfile-args-duplicates/single-phase-dockerfile-args.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>single_phase_dockerfile_args</RootNamespace> <RootNamespace>single_phase_dockerfile_args</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/single-phase-dockerfile-args/single-phase-dockerfile-args.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>single_phase_dockerfile_args</RootNamespace> <RootNamespace>single_phase_dockerfile_args</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/single-phase-dockerfile-multi-args/single-phase-dockerfile-multi-args.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>single_phase_dockerfile_args</RootNamespace> <RootNamespace>single_phase_dockerfile_args</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/single-phase-dockerfile/single-phase-dockerfile.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>single_phase_dockerfile</RootNamespace> <RootNamespace>single_phase_dockerfile</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/single-project/test-project/test-project.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>test_project</RootNamespace> <RootNamespace>test_project</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/volume-test/volume-test.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>volume_test</RootNamespace> <RootNamespace>volume_test</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/E2ETest/testassets/projects/web-app/web-app.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>web_app</RootNamespace> <RootNamespace>web_app</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
test/Microsoft.Tye.Extensions.Configuration.Tests/Microsoft.Tye.Extensions.Configuration.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<IsTestProject>true</IsTestProject> <IsTestProject>true</IsTestProject>
</PropertyGroup> </PropertyGroup>

2
test/Test.Infrastructure/Test.Infrastructure.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<TestRunnerName>XUnit</TestRunnerName> <TestRunnerName>XUnit</TestRunnerName>
<Nullable>disable</Nullable> <Nullable>disable</Nullable>

2
test/UnitTests/Microsoft.Tye.UnitTests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<AssemblyName>Microsoft.Tye.UnitTests</AssemblyName> <AssemblyName>Microsoft.Tye.UnitTests</AssemblyName>
<IsTestProject>true</IsTestProject> <IsTestProject>true</IsTestProject>
<IsUnitTestProject>true</IsUnitTestProject> <IsUnitTestProject>true</IsUnitTestProject>

Loading…
Cancel
Save