2017-04-13 9 views
1

私はMicrosoft.CodeAnalysisと.MSBuildを使用してソリューションをロードしています。それはプロジェクトであり、プロジェクトOutputFilePathを取得しています。問題はデバッグとリリースが異なり、ソリューションの構成を切り替える方法がわかりません。どちらの設定をどのように使用するかを決める考え方はありますか?roslynプロジェクトの設定

+0

は 'MSBuildWorkspace.Create()'メソッドに '' { "設定"、 "デバッグ"}エントリと辞書を通過(または "リリース")してみてください。 –

+0

それは、ありがとう! –

+0

喜んで助けました。私はそれを検証するコンピュータを持っていなかった。それをもう少しの情報で答えに変えました。 –

答えて

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