编辑功能文件时,SpecFlow .feature.cs文件会重复

时间:2017-01-27 12:03:29

标签: c# visual-studio-2015 specflow

当我修改Foo.feature时,SpecFlow会创建一个新的Foo1.feature.cs,而不是覆盖Foo.feature.cs。然后,由于重复的符号,重复的文件会导致编译错误。

它只发生在我项目中的一个.feature文件中 - 所有其他文件都正常运行。所有.feature和.feature.cs文件都受源代码管理,并添加到Foo.csproj文件中。

1 个答案:

答案 0 :(得分:3)

我想我发现了问题 - 在我的.csproj文件中我有这个条目:

<None Include="Foo.feature">
  <Generator>SpecFlowSingleFileGenerator</Generator>
  <LastGenOutput>Foo1.feature.cs</LastGenOutput>
</None>

我认为<LastGenOutput>让SpecFlow感到困惑。我不知道它来自何处,但将其更改为<LastGenOutput>Foo.feature.cs</LastGenOutput>解决了问题。

修改:我刚发现缺少<LastGenOutput>标记也会导致创建重复的Foo1.feature.cs文件。因此,如果标签丢失,请创建它并在其中放入正确的文件名。

在使用Google浏览SpecFlow和“LastGenOutput”后,我找到了这个帖子 - https://groups.google.com/forum/#!topic/specflow/SpOihmvoAOQ。它概述了同样的问题和解决方案:

  

问题可能非常烦人。可能的解决方案(自担风险!)

     
      
  1. 删除Visual Studio中的所有YourFeature1.feature.cs文件。保存项目。
  2.   
  3. 关闭Visual Studio,用记事本打开.csproj文件
  4.   
  5. 找到与此类似的行:
  6.         

    YourFeature1.feature.cs

         

    将其更改为

         

    YourFeature.feature.cs

         

    保存,在Visual Studio中加载项目。享受。

但是你必须已经知道解决方案才能找到该线程。