private void AddXunitIdePackages(QualifierId qualifier) { if (ProjectsByQualifier.TryGetValue(qualifier, out var project)) { AddPackageReference(project, "Microsoft.NET.Test.Sdk", "16.5.0"); var pkgRef = AddPackageReference(project, "xunit.runner.visualstudio", "2.4.1"); pkgRef.SetMetadata("PrivateAssets", "all"); pkgRef.SetMetadata("IncludeAssets", "runtime; build; native; contentfiles; analyzers; buildtransitive"); } }
internal override void VisitDirectory(SealDirectory sealDirectory) { if (ProjectsByQualifier.TryGetValue(sealDirectory.Provenance.QualifierId, out var project)) { if (sealDirectory.Tags.Contains(Context.AssemblyDeploymentTag)) { SetOutputDirectory(project, sealDirectory.Directory.Path, OutputDirectoryType.AssemblyDeployment); } if (sealDirectory.Tags.Contains(Context.TestDeploymentTag)) { MakeTestProject(); SetOutputDirectory(project, sealDirectory.Directory.Path, OutputDirectoryType.TestDeployment); } } }
internal override void VisitDirectory(SealDirectory sealDirectory) { Project project; string friendlyQualifier = Context.QualifierTable.GetCanonicalDisplayString(sealDirectory.Provenance.QualifierId); if (ProjectsByQualifier.TryGetValue(friendlyQualifier, out project)) { if (sealDirectory.Tags.Contains(Context.AssemblyDeploymentTag)) { SetOutputDirectory(project, sealDirectory.Directory.Path, OutputDirectoryType.AssemblyDeployment); } if (sealDirectory.Tags.Contains(Context.TestDeploymentTag)) { MakeTestProject(); SetOutputDirectory(project, sealDirectory.Directory.Path, OutputDirectoryType.TestDeployment); } } }
private void ExtractOutputPathFromUnitTest(Process process, string qualifier, int position) { MakeTestProject(); var arguments = Context.GetArgumentsDataFromProcess(process); Project project; if (ProjectsByQualifier.TryGetValue(qualifier, out project)) { int i = 0; foreach (var arg in arguments) { var type = arg.FragmentType; if (i++ == position && type == PipFragmentType.AbsolutePath) { var path = GetPathValue(arg).GetParent(Context.PathTable); SetOutputDirectory(project, path, OutputDirectoryType.TestDeployment); } } } }
internal override void VisitProcess(Process process, ProcessType pipCategory) { string friendlyQualifier = Context.QualifierTable.GetCanonicalDisplayString(process.Provenance.QualifierId); // TODO: After fixing the qualifier in the DS, I will start using the qualifier id instead of friendly qualifier name // Context.QualifierTable.GetQualifiedOutputDirectoryPart(Context.StringTable, qualifierId).ToString(Context.StringTable); var arguments = Context.GetArgumentsDataFromProcess(process); Project project; if (!ProjectsByQualifier.TryGetValue(friendlyQualifier, out project)) { project = CreateProject(process); project.SetProperty("PlatformToolset", "v140"); FillProjectConfigurations(project); AddHeaderFiles(project); ProjectsByQualifier.Add(friendlyQualifier, project); } switch (pipCategory) { case ProcessType.Cl: IterateClArguments(project, arguments); break; case ProcessType.Link: IterateLinkArguments(project, arguments); // If this is DS, use WorkingDirectory as an output folder. var outputDir = ExtensionUtilities.IsScriptExtension(SpecFilePath.GetExtension(Context.PathTable).ToString(Context.StringTable)) ? process.WorkingDirectory : process.UniqueOutputDirectory; SetOutputDirectory(project, outputDir, OutputDirectoryType.Build); break; } }