生成错误:无法加载文件或程序集“Microsoft.Build.Framework,Version = 15.1.0.0”或其依赖项之一

时间:2017-12-15 13:47:30

标签: visual-studio-2017 nunit specflow nunit-3.0

当我尝试生成.feature文件时,我似乎随机收到以下错误。

偶尔我会更改或更改我的功能文件,并且此错误突然冒出:

#error Generation error: Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

我完全不知道如何解决这个问题 - 我尝试添加对程序集的引用,更改SpecFlow / NUnit的版本,但似乎没有任何工作。

删除我的项目副本并从源代码管理中删除它最初会起作用,但之后会再次发生。

以下是我安装的软件包的完整列表:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net461" />
  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net461" />
  <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net461" />
  <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net461" />
  <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
  <package id="NUnit" version="3.0.0" targetFramework="net461" />
  <package id="NUnit3TestAdapter" version="3.9.0" targetFramework="net461" />
  <package id="SpecFlow" version="2.2.1" targetFramework="net461" />
  <package id="SpecFlow.NUnit" version="2.2.1" targetFramework="net461" />
  <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net461" />
  <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net461" />
  <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net461" />
  <package id="System.Net.Requests" version="4.0.11" targetFramework="net461" />
  <package id="System.Spatial" version="5.8.2" targetFramework="net461" />
  <package id="WindowsAzure.Storage" version="8.6.0" targetFramework="net461" />
</packages>

我正在运行Visual Studio Community 17(15.5.2),.NET 4.7.02556和SpecFlow扩展版2017.1.10

5 个答案:

答案 0 :(得分:2)

有时对我有用的是从解决方案路径中删除%LOCALAPPDATA%/Microsoft/Visual Studio/<your VS version>/ComponentModelCache文件夹,然后在解决方案中恢复nuget包并重新生成要素文件。

有时这还不够,还必须删除visual studio缓存。 位于:help("sample")

答案 1 :(得分:1)

这是一个已知问题,我们无法重现和修复。

GitHub问题:https://github.com/techtalk/SpecFlow/issues/857

答案 2 :(得分:1)

我的修复方法是删除现有的.feature.cs文件,然后重新生成它们 我正在使用Visual Studio 2017 15.5.1和以下SpecFlow版本:

SpecFlow Version:2.2.0.0
SpecFlow Generator Version:2.2.0.0

以下github线程,给了我线索:
Visual Studio 2017 Generation error: Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0

答案 3 :(得分:1)

这是Microsoft软件包的问题。这个解决方案对我有用。问题消失了,现在可以成功构建了。

在您的Azure Build Pipeline> NuGet tool installer步骤中,将Version of NuGet.exe to install更改为较新的版本,例如5.4.0。

https://dist.nuget.org/tools.json上查看Nuget的最新ReleasedAndBlessed版本。

答案 4 :(得分:0)

更新最新版本的Visual Studio可以为我解决此问题。

操作系统:macOS 10.15.1