我尝试以编程方式从C#测试中构建.vcxproj
时出现以下问题。
System.TypeLoadException : Could not load type 'Microsoft.Build.Framework.IProjectElement' from assembly 'Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
at Microsoft.Build.Evaluation.ProjectRootElementCache..ctor(Boolean autoReloadFromDisk)
at Microsoft.Build.Evaluation.ProjectCollection..ctor(IDictionary`2 globalProperties, IEnumerable`1 loggers, IEnumerable`1 remoteLoggers, ToolsetDefinitionLocations toolsetDefinitionLocations, Int32 maxNodeCount, Boolean onlyLogCriticalEvents) in E:\A\_work\82\s\src\Build\Definition\ProjectCollection.cs:line 307
at Microsoft.Build.Evaluation.ProjectCollection..ctor() in E:\A\_work\82\s\src\Build\Definition\ProjectCollection.cs:line 252
只要我的代码到达第一个new ProjectCollection()
表达式,就会发生这种情况。我已将以下行添加到.csproj
文件中。
<PackageReference Include="Microsoft.Build" Version="15.6.85" />
为什么要为Microsoft.Build.Framework
寻找版本14?为什么无法加载它。我在Visual Studio 2017上,从dotnet test
命令得到了相同的结果。