2016-12-08 94 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')" />