我的项目中有以下Nuget包。Specflow v2.4.1 Nunit v3.11 Nunit Test Adapter v3.12
当我添加或修改一个功能文件时,specFlow以某种方式引用了旧版本的specFlow来创建/修改设计器生成的文件。
using TechTalk.SpecFlow;
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.9.0.77")]这样,我就得到了构建错误和不再运行的测试。
在检查问题时,我注意到TestTalk.SpecFlow.dll指向bin/debug文件夹。当我关闭解决方案并从bin/debug文件夹中删除所有文件时,引用路径更改为packages文件夹,然后设计器生成的代码选择了正确的specflow版本。
执行构建解决方案操作后,该问题再次出现(现在Techtalk.specFlow.dll引用的是bin/debug文件夹)
我曾尝试删除设计器生成的代码并再次运行自定义工具,但只有在从bin/debug文件夹中删除DLL时,问题才得到解决。
我甚至尝试将文件生成背后的设置代码更改为AppDomain或进程外,但问题仍然存在。
请帮助解决这个问题,而不是每次都删除文件。谢谢。
发布于 2019-03-08 08:20:46
我通过降低NUnit和SpecFlow的级别解决了这个问题。
·Nunit.Framework: 3.4.1·SpecFlow: 2.3.2
https://stackoverflow.com/questions/54996505
复制相似问题