2016-12-08 95 views
0

我有一个基于SpecFlow的测试项目。有时是一个工作的源代码(可在其他计算机和构建服务器)无法在Visual Studio 2015年装载在解决方案资源管理器中的信息load failed和以下错误消息输出控制台上的一个问题:SpecFlow项目加载失败

C:\Project\Tests.csproj : error : The imported project "C:\Project\packages\SpecFlow.2.1.0\tools\TechTalk.SpecFlow.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. C:\Project\Tests.csproj

项目用途:

  • SpecFlow为Visual Studio 2015年(VS扩展)
  • SpecFlow(NuGet包)

回答

2

原来是项目文件(csproj)的问题。它是手工扩展了TechTalk.SpecFlow.targets喜欢如下:

<Import Project="..\packages\SpecFlow.2.1.0\tools\TechTalk.SpecFlow.targets" /> 

但是,当目录被清洗(例如,通过git的复位硬),没有包装,所以项目不能被加载到执行的NuGet恢复。

解决方案是用条件Exists扩展Import

<Import Project="..\packages\SpecFlow.2.1.0\tools\TechTalk.SpecFlow.targets" 
    Condition="Exists('..\packages\SpecFlow.2.1.0\tools\TechTalk.SpecFlow.targets')" />