【问题标题】:roslyn project configurationroslyn项目配置
【发布时间】:2017-04-13 07:38:17
【问题描述】:

我正在使用 Microsoft.CodeAnalysis 和 .MSBuild 加载解决方案,它是项目并检索项目 OutputFilePath。问题是 Debug 和 Release 有不同的,我想不出在解决方案配置之间切换的方法。知道如何设置要使用的配置吗?

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();

【问题讨论】:

  • 尝试将带有条目{ "Configuration", "Debug" }(或“Release”)的字典传递给MSBuildWorkspace.Create() 方法。
  • 很高兴它有帮助。我有/没有计算机来验证它。将其转化为包含更多信息的答案。

标签: c# msbuild roslyn-code-analysis


【解决方案1】:

某些 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多