private string ProjectText(ProjectPart assembly) { var responseFilesData = assembly.ParseResponseFileData(m_AssemblyNameProvider, ProjectDirectory).ToList(); var projectBuilder = new StringBuilder(ProjectHeader(assembly, responseFilesData)); foreach (var file in assembly.SourceFiles) { var fullFile = m_FileIOProvider.EscapedRelativePathFor(file, ProjectDirectory); projectBuilder.Append(" <Compile Include=\"").Append(fullFile).Append("\" />").Append(Environment.NewLine); } projectBuilder.Append(assembly.AssetsProjectPart); var responseRefs = responseFilesData.SelectMany(x => x.FullPathReferences.Select(r => r)); var internalAssemblyReferences = assembly.AssemblyReferences .Where(reference => !reference.sourceFiles.Any(ShouldFileBePartOfSolution)).Select(i => i.outputPath); var allReferences = assembly.CompiledAssemblyReferences .Union(responseRefs) .Union(internalAssemblyReferences).ToArray(); foreach (var reference in allReferences) { var fullReference = Path.IsPathRooted(reference) ? reference : Path.Combine(ProjectDirectory, reference); AppendReference(fullReference, projectBuilder); } if (0 < assembly.AssemblyReferences.Length) { projectBuilder.Append(" </ItemGroup>").Append(Environment.NewLine); projectBuilder.Append(" <ItemGroup>").Append(Environment.NewLine); foreach (var reference in assembly.AssemblyReferences.Where(i => i.sourceFiles.Any(ShouldFileBePartOfSolution))) { var name = m_AssemblyNameProvider.GetProjectName(reference.name, reference.defines); projectBuilder.Append(" <ProjectReference Include=\"").Append(name).Append(GetProjectExtension()).Append("\">").Append(Environment.NewLine); projectBuilder.Append(" <Project>{").Append(ProjectGuid(name)).Append("}</Project>").Append(Environment.NewLine); projectBuilder.Append(" <Name>").Append(name).Append("</Name>").Append(Environment.NewLine); projectBuilder.Append(" </ProjectReference>").Append(Environment.NewLine); } } projectBuilder.Append(ProjectFooter()); return(projectBuilder.ToString()); }
private string ProjectFile(ProjectPart projectPart) { return(Path.Combine(ProjectDirectory, $"{m_AssemblyNameProvider.GetProjectName(projectPart.OutputPath, projectPart.Name)}.csproj")); }
public string ProjectFile(Assembly assembly) { return(Path.Combine(ProjectDirectory, $"{m_AssemblyNameProvider.GetProjectName(assembly.outputPath, assembly.name)}.csproj")); }