C# roslyn项目配置

C# roslyn项目配置,c#,msbuild,roslyn-code-analysis,C#,Msbuild,Roslyn Code Analysis,我正在使用Microsoft.CodeAnalysis和.MSBuild加载解决方案、它的项目并检索项目OutputFilePath。问题是调试和发布有不同的版本,我无法找到在解决方案配置之间切换的方法。知道如何设置要使用的配置吗 MSBuildWorkspace workspace = MSBuildWorkspace.Create(); workspace.LoadMetadataForReferencedProjects = true; Solution solution = worksp

我正在使用Microsoft.CodeAnalysis和.MSBuild加载解决方案、它的项目并检索项目OutputFilePath。问题是调试和发布有不同的版本,我无法找到在解决方案配置之间切换的方法。知道如何设置要使用的配置吗

MSBuildWorkspace workspace = MSBuildWorkspace.Create();
workspace.LoadMetadataForReferencedProjects = true;
Solution solution = workspace.OpenSolutionAsync("someSolution.sln").Result;
foreach (Project project in solution.Projects)
            Console.Out.WriteLine(project.OutputFilePath);
workspace.CloseSolution();

某些MSBuild属性(通常为输出路径)取决于生成项目时使用的配置。创建工作区时,必须指定该配置

例如:

var properties = new Dictionary<string, string>
{
   { "Configuration", "Debug" } // Or "Release", or whatever is known to your projects.
   // ... more properties that could influence your property,
   // e.g. "Platform" ("x86", "AnyCPU", etc.)
};

MSBuildWorkspace workspace = MSBuildWorkspace.Create(properties);
workspace.LoadMetadataForReferencedProjects = true;
Solution solution = workspace.OpenSolutionAsync("someSolution.sln").Result;
foreach (Project project in solution.Projects)
            Console.Out.WriteLine(project.OutputFilePath);
workspace.CloseSolution();
var属性=新字典
{
{“配置”、“调试”}//或“发布”,或项目已知的任何内容。
//…更多可能影响您财产的财产,
//例如“平台”(“x86”、“AnyCPU”等)
};
MSBuildWorkspace=MSBuildWorkspace.Create(属性);
workspace.LoadMetadataForReferencedProjects=true;
解决方案=workspace.OpenSolutionAsync(“someSolution.sln”).Result;
foreach(解决方案中的项目。项目)
Console.Out.WriteLine(project.OutputFilePath);
workspace.CloseSolution();

尝试将带有条目
{“配置”、“调试”}
(或“发布”)的字典传递到
MSBuildWorkspace.Create()
方法。很高兴它有所帮助。我没有计算机来验证它。用更多的信息把它变成了一个答案。