【发布时间】:2021-11-16 16:40:52
【问题描述】:
花了太多时间后,我仍然无法让 Roslyn 加载简单的 C# 项目。 项目来源:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Build" Version="16.11.0" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.11.0" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="3.11.0" />
</ItemGroup>
</Project>
正在尝试加载的代码:
using System;
using Microsoft.CodeAnalysis.MSBuild;
namespace Metrics5
{
class Program
{
static void Main(string[] args)
{
using var workspace = MSBuildWorkspace.Create();
workspace.LoadMetadataForReferencedProjects = true;
var currentProject = workspace.OpenProjectAsync(@"C:\work\Metrics5\Metrics5.csproj").Result;
var diagnostics = workspace.Diagnostics;
foreach(var diagnostic in diagnostics)
{
Console.WriteLine(diagnostic.Message);
}
}
}
}
上面写着:
在处理文件“C:\work\Metrics5\Metrics5.csproj”时,Msbuild 失败,消息为:找不到指定的 SDK“Microsoft.NET.Sdk”。 C:\work\Metrics5\Metrics5.csproj
在我添加MSBuildSDKsPath 作为环境值MSBuildSDKsPath=C:\Program Files\dotnet\sdk\5.0.301\Sdks 之后,它似乎通过了这一步并陷入了另一个:
处理文件“C:\work\Metrics5\Metrics5.csproj”时,Msbuild 失败,消息为:导入的项目“C:\work\Metrics5\bin\Debug\net5.0\Current\Microsoft.Common.props “ 没有找到。确认 Import de 中的表达式 声明“C:\work\Metrics5\bin\Debug\net5.0\Current\Microsoft.Common.props”是正确的,并且该文件存在于磁盘上。 C:\Program Files\dotnet\sdk\5.0.301\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props
从这里我不知道如何继续,我错过了一些 nuget 包吗? 我需要额外安装一些东西吗?
【问题讨论】:
标签: c# msbuild roslyn .net-5 roslyn-code-analysis