Skip to content
15 changes: 15 additions & 0 deletions src/dotnet-ef/RootCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,13 @@ protected override int Execute(string[] _)
startupProject.AssemblyName + ".runtimeconfig.json");
var projectAssetsFile = startupProject.ProjectAssetsFile;

if (!string.IsNullOrEmpty(startupProject.TargetPlatformIdentifier)
&& !IsCurrentPlatform(startupProject.TargetPlatformIdentifier))
Comment thread
AndriySvyryd marked this conversation as resolved.
Outdated
{
Reporter.WriteWarning(
Resources.UnsupportedPlatform(startupProject.ProjectName, startupProject.TargetPlatformIdentifier));
}

var targetFramework = new FrameworkName(startupProject.TargetFrameworkMoniker!);
if (targetFramework.Identifier == ".NETFramework")
{
Expand Down Expand Up @@ -313,6 +320,14 @@ private static string GetVersion()
=> typeof(RootCommand).Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()!
.InformationalVersion;

private static bool IsCurrentPlatform(string targetPlatformIdentifier)
=> string.Equals(targetPlatformIdentifier, "Windows", StringComparison.OrdinalIgnoreCase)
? OperatingSystem.IsWindows()
: string.Equals(targetPlatformIdentifier, "Linux", StringComparison.OrdinalIgnoreCase)
? OperatingSystem.IsLinux()
: string.Equals(targetPlatformIdentifier, "macOS", StringComparison.OrdinalIgnoreCase)
&& OperatingSystem.IsMacOS();

private static bool ShouldHelp(IReadOnlyList<string> commands, IList<string> args)
=> args.Count == 0
|| commands.Count == 0
Expand Down
Loading