public static MSBuildProj GetProject(string filePath, string targetFramework, bool forceNew, bool build, ILogger logger, bool globalTool = false) { MSBuildProj project = null; var projectDir = Path.GetDirectoryName(filePath); var srcProgramFile = Path.Combine(projectDir, "Program.cs"); var dstProgramFile = Path.Combine(projectDir, $"{Path.GetFileNameWithoutExtension(filePath)}.cs"); Directory.CreateDirectory(Path.GetDirectoryName(filePath)); if (forceNew && File.Exists(filePath)) { File.Delete(filePath); if (File.Exists(dstProgramFile)) { File.Delete(dstProgramFile); } FileUtil.TryDeleteDirectory(Path.Combine(Path.GetDirectoryName(filePath), "obj")); } if (File.Exists(filePath)) { project = MSBuildProj.FromPathAsync(filePath, logger, token).Result; } else { project = MSBuildProj.DotNetNewAsync(filePath, logger, token).Result; File.Move(srcProgramFile, dstProgramFile); } Assert.NotNull(project); if (!string.IsNullOrEmpty(targetFramework)) { project.TargetFramework = targetFramework; } if (!globalTool) { var svcutilPkgVersion = E2ETest.GetSvcutilPkgVersionAndFeed(); var svcutilPkgRef = ProjectDependency.FromPackage("dotnet-svcutil-lib", svcutilPkgVersion); if (!project.Dependencies.Any(d => d.Equals(svcutilPkgRef))) { bool success = project.AddDependency(svcutilPkgRef); Assert.True(success, $"Could not add tool package dependency: dotnet-svcutil-lib.{svcutilPkgVersion}"); } } var ret = project.RestoreAsync(logger, token).Result; Assert.True(ret.ExitCode == 0, $"Project package restore failed:{Environment.NewLine}{ret.OutputText}{logger}"); if (build) { ret = project.BuildAsync(logger, token).Result; Assert.True(ret.ExitCode == 0, $"Project build failed:{Environment.NewLine}{ret.OutputText}{logger}"); } return(project); }
public void UpdateServiceRefBasic(string referenceFolderName, bool bootstrapping) { this_TestCaseName = "UpdateServiceRefBasic"; TestFixture(); var testCaseName = referenceFolderName; InitializeE2E(testCaseName, createUniqueProject: true, sdkVersion: g_SdkVersion); var paramsFile = SetupServiceReferenceFolder("dotnet-svcutil.params.json", referenceFolderName); if (bootstrapping) { var updateOptions = UpdateOptions.FromFile(paramsFile); // this forces bootstrapping of svcutil as the project reference is not available at runtime. updateOptions.References.Add(ProjectDependency.FromPackage("Newtonsoft.Json", "*")); updateOptions.Save(paramsFile); } var options = "-u -v minimal"; TestSvcutil(options, expectSuccess: true); }