"Parameter "toolsPath“不能为空。”调用 MSBuildWorkspace.OpenProjectAsync() 时
"Parameter "toolsPath" cannot be null." when calling MSBuildWorkspace.OpenProjectAsync()
我有一个包含许多 C# 项目的 Visual Studio 解决方案。我目前正在尝试在构建和运行项目 1 的解决方案中构建一个新的 C# 项目,但是在调用 MSBuildWorkspace.OpenProjectAsync
:
时出现运行时错误
Parameter "toolsPath" cannot be null.'
我不确定这是指什么参数。我的代码如下:
using System;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.MSBuild;
namespace RunAllProjects
{
class Program
{
static async Task Main()
{
using MSBuildWorkspace ws = MSBuildWorkspace.Create();
var project = await ws.OpenProjectAsync("../../../../1/1.csproj");
Console.WriteLine(project.Name);
}
}
}
知道这个错误可能来自哪里吗?谢谢!
在调用 MSBuildWorkspace.Create() 之前,先调用 MSBuildLocator.RegisterDefaults()
。有关于如何使用 MSBuildLocator here.
的说明
我有一个包含许多 C# 项目的 Visual Studio 解决方案。我目前正在尝试在构建和运行项目 1 的解决方案中构建一个新的 C# 项目,但是在调用 MSBuildWorkspace.OpenProjectAsync
:
Parameter "toolsPath" cannot be null.'
我不确定这是指什么参数。我的代码如下:
using System;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.MSBuild;
namespace RunAllProjects
{
class Program
{
static async Task Main()
{
using MSBuildWorkspace ws = MSBuildWorkspace.Create();
var project = await ws.OpenProjectAsync("../../../../1/1.csproj");
Console.WriteLine(project.Name);
}
}
}
知道这个错误可能来自哪里吗?谢谢!
在调用 MSBuildWorkspace.Create() 之前,先调用 MSBuildLocator.RegisterDefaults()
。有关于如何使用 MSBuildLocator here.