MSBuildWorkspaceは、アプリケーションのビルドに使用しているコンピュータ以外のコンピュータ上のドキュメントを表示するようになりました。Roslyn/MSBuildWorkspaceが非Devコンピュータ上のドキュメントをロードしない
私はRoslyn workspace for .NET Core's new .csproj formatを見たことがありますが、私の場合は開発用コンピュータで問題なく動作していますが、別のコンピュータの同じプロジェクトでは空です。
私はなぜ開発用コンピュータでは動作しますが、他のコンピュータでは動作しないのか分かりません...?
これはコードです:
public static IReadOnlyList<CodeFile> ReadSolution(string path)
{
List<CodeFile> codes = new List<CodeFile>();
using (MSBuildWorkspace workspace = MSBuildWorkspace.Create())
{
var solution = workspace.OpenSolutionAsync(path).Result;
foreach (var project in solution.Projects)
{
//project.Documents.Count() is 0
foreach (var doc in project.Documents)
{
if (doc.SourceCodeKind == SourceCodeKind.Regular)
{
StringBuilder sb = new StringBuilder();
using (var sw = new StringWriter(sb))
{
var source = doc.GetTextAsync().Result;
source.Write(sw);
sw.WriteLine();
}
codes.Add(new CodeFile(doc.FilePath, sb.ToString()));
}
}
}
}
return codes;
}
MSBuildのワークスペースが動作するためにMSBuildのインストールおよびCSHARP/VBのためのすべての必要なのMSBuildタスクファイルを必要とします。おそらく、開発者コマンドプロンプト(msbuild.exeも動作する場所)で実行されるアプリケーションでのみ動作します。また、msbuild.exe.configにあるすべてのバインディングリダイレクトを自分のapp.confgに含める必要があります。 –