【问题标题】:Techtalk.Specflow error: Could not load assembly file or assemblyTechtalk.Specflow 错误:无法加载程序集文件或程序集
【发布时间】:2019-08-26 19:59:30
【问题描述】:

我以前见过这个问题,但我相信它没有得到解决。基本上我的设置是这样的: 对比 2015 Specflow 1.9.0 版(我根据其他没有帮助的问题从 2.1.0 降级到此版本)

当我尝试构建我的项目时,它带有以下错误:

#error 生成错误:无法加载文件或程序集“TechTalk.SpecFlow,版本=1.9.0.77,文化=中性,PublicKeyToken=0778194805d6db41”或其依赖项之一。系统找不到指定的文件。

【问题讨论】:

  • dll在哪里?通常通过“添加现有项目”将 dll 添加到项目中。然后将 dll 放入项目文件夹中。当您编译 dll 时,编译器会将其移动到 bin/debug 或 bin/release 文件夹。该错误消息表明该 dll 不在调试文件夹的发布中。检查您的项目是否正在构建调试或发布版本。然后检查dll是否在文件夹中。通常人们只是将 dll 移动到调试或发布文件夹中,然后运行 ​​clear all 从调试/发布文件夹中删除 dll 会导致此错误。
  • bin文件夹中的release或debug文件夹中没有dll。过去,这包含所有的 dll,所以不知道为什么这是空的
  • 我怀疑有人只是将 dll 放到文件夹中,而不是添加到引用列表中。

标签: c# .net specflow


【解决方案1】:

检查您的package.config,看看它是否有TechTalk.SpecFlow 的条目。如果是,则从包配置文件中删除该条目...以及删除与该 dll 相关的所有程序集。从NuGet重新安装特定版本并重新编译您的项目。

根据您的评论,它仍然针对新版本 newVersion="2.1.0.0" 而不是新版本 Version=1.9.0.77。改变你喜欢的app.config

<assemblyIdentity name="TechTalk.SpecFlow" publicKeyToken="0778194805d6db41" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="1.9.0.77" /> 

【讨论】:

  • 感谢@Rahul,但我这样做了,但仍然没有解决问题。以下是在我的 app.config 文件中生成的
  • 我再次删除了所有内容并替换了 app.config 的那部分,它似乎可以解决问题。
  • "如果是,则删除"和"如果不是"?
【解决方案2】:

只需从 VS 菜单卸载 specflow - 工具 >> 扩展和更新并重新安装。这样做时它会要求 VS 重新启动,然后一切就绪。

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 2010-10-07
    • 2023-03-05
    • 2016-04-18
    • 1970-01-01
    • 2013-02-23
    • 2015-09-25
    相关资源
    最近更新 更多