我正在使用以下代码,但它无效
MSBuildWorkspace workspace = MSBuildWorkspace.Create();
Microsoft.CodeAnalysis.Solution originalSolution = workspace.OpenSolutionAsync(sol.SolutionPath).Result;
Microsoft.CodeAnalysis.Solution newSolution = originalSolution;
ProjectReference pr = new ProjectReference(pid);
CodeAnalysis.Project prj = newSolution.Projects.Last();
prj = prj.AddProjectReference(pr);
newSolution = prj.Solution;
workspace.TryApplyChanges(newSolution);
答案 0 :(得分:1)
当您调用TryApplyChanges时,MSBuildWorkspace不支持将项目引用传播回项目文件。我看到你已经在CodePlex上提交了the bug,但在此之前得到修复(我们是开源的 - 你也可以解决它!)没有解决方法。如果您只需分析世界,就好像该项目引用存在一样,那么您不需要调用它,只需使用您尝试应用的Solution对象即可。如果您的目标只是编辑项目文件,另一个选择是使用您选择的MSBuild或XML API直接操作项目文件。