我正在尝试创建一个自托管的WebAPI 2.0项目,允许您通过API打开/探索/构建.sln解决方案.
这是我的一个控制器中的代码,它应该返回给定.sln路径的项目列表:
public async Task<IHttpActionResult> GetProjects(string slnPath = "")
{
var workspace = MSBuildWorkspace.Create();
var solution = await workspace.OpenSolutionAsync(slnPath);
var projects = solution.Projects;
}
Run Code Online (Sandbox Code Playgroud)
我预计项目举行项目的解决方案,但根据调试器,solution.Projects
并且solution.ProjectIds
似乎总是空的.
我尝试过多个.sln
文件,所有这些文件都可以在Visual Studio中打开,看看它们中有项目.
我已经看到了这个问题,但我的项目不是Visual Studio的添加,它是一个从命令行应用程序调用的类库.
Jas*_*ski 23
这通常是由一些事情引起的,按照共性的顺序:
您缺少Microsoft.CodeAnalysis.CSharp.Workspaces.dll或Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll的副本.确保在运行项目时,这些DLL位于主Microsoft.CodeAnalysis.Workspaces.dll旁边.
您正在加载我们不支持的项目类型的解决方案.除了无项目的Web站点项目之外,我们应该支持任何项目类型.类库应该可以正常工作.
我们有一个错误导致我们错误处理您的特定项目类型.如果是这种情况,请在GitHub上提交错误.
如果您在单元测试中遇到此问题,但在生产代码中没有遇到此问题,请确保您在测试项目中引用了Microsoft.CodeAnalysis.CSharp.dll
和。Microsoft.CodeAnalysis.CSharp.Workspaces
JYL在所选答案的评论中提到了这一点,但我没有立即看到它。
归档时间: |
|
查看次数: |
3407 次 |
最近记录: |