public static async Task <Project> DotnetNew( this TempDirectory tempDirectory, string templateName, string name, IDictionary <string, string> arguments = null, TimeSpan?timeout = null) { var stringBuilder = new StringBuilder($"new {templateName} --name \"{name}\""); if (arguments != null) { foreach (var argument in arguments) { stringBuilder.Append($" --{argument.Key} \"{argument.Value}\""); } } await ProcessAssert.AssertStart( tempDirectory.DirectoryPath, "dotnet", stringBuilder.ToString(), CancellationTokenFactory.GetCancellationToken(timeout)); var projectDirectoryPath = Path.Combine(tempDirectory.DirectoryPath, name); var projectFilePath = Path.Combine(projectDirectoryPath, name + ".csproj"); var publishDirectoryPath = Path.Combine(projectDirectoryPath, "Publish"); return(new Project(name, projectFilePath, projectDirectoryPath, publishDirectoryPath)); }
public static Task DotnetBuild(this Project project, bool?noRestore = true, TimeSpan?timeout = null) { var noRestoreArgument = noRestore == null ? null : "--no-restore"; return(ProcessAssert.AssertStart( project.DirectoryPath, "dotnet", $"build {noRestoreArgument}", CancellationTokenFactory.GetCancellationToken(timeout))); }
public static Task DotnetPublish( this Project project, string framework = null, string runtime = null, bool?noRestore = true, TimeSpan?timeout = null) { var frameworkArgument = framework == null ? null : $"--framework {framework}"; var runtimeArgument = runtime == null ? null : $"--self-contained --runtime {runtime}"; var noRestoreArgument = noRestore == null ? null : "--no-restore"; DirectoryExtended.CheckCreate(project.PublishDirectoryPath); return(ProcessAssert.AssertStart( project.DirectoryPath, "dotnet", $"publish {noRestoreArgument} {frameworkArgument} {runtimeArgument} --output {project.PublishDirectoryPath}", CancellationTokenFactory.GetCancellationToken(timeout))); }
public static Task DotnetRestore(this Project project, TimeSpan?timeout = null) => ProcessAssert.AssertStart( project.DirectoryPath, "dotnet", "restore", CancellationTokenFactory.GetCancellationToken(timeout));
public static Task DotnetNewInstall(string source, TimeSpan?timeout = null) => ProcessAssert.AssertStart( DirectoryExtended.GetCurrentDirectory(), "dotnet", $"new --install \"{source}\"", CancellationTokenFactory.GetCancellationToken(timeout));