当我修改Foo.feature
时,SpecFlow会创建一个新的Foo1.feature.cs
,而不是覆盖Foo.feature.cs
。然后,由于重复的符号,重复的文件会导致编译错误。
它只发生在我项目中的一个.feature文件中 - 所有其他文件都正常运行。所有.feature和.feature.cs文件都受源代码管理,并添加到Foo.csproj
文件中。
答案 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。它概述了同样的问题和解决方案:
问题可能非常烦人。可能的解决方案(自担风险!)
- 删除Visual Studio中的所有YourFeature1.feature.cs文件。保存项目。
- 关闭Visual Studio,用记事本打开.csproj文件
- 找到与此类似的行:
醇>YourFeature1.feature.cs
将其更改为
YourFeature.feature.cs
保存,在Visual Studio中加载项目。享受。
但是你必须已经知道解决方案才能找到该线程。