从 .Net 4.6.1 单元测试引用 .Net 标准项目时缺少方法异常

2024-01-19

运行使用的 .Net 4.6.1 单元测试时出现以下异常System.IO.Compression.ZipFile.Open,如果单元测试项目引用 .Net Standard 2.0 程序集:

System.MissingMethodException: Method not found: 'System.IO.Compression.ZipArchive System.IO.Compression.ZipFile.Open(System.String, System.IO.Compression.ZipArchiveMode)'.
    at UnitTestProject.UnitTest1.TestMethod1()

单元测试项目是使用 VS 2017 单元测试项目(不是 .NET Core 项目)创建的,并且引用已添加到System.IO.Compression.FileSystem和我的标准类库:

using System.IO.Compression;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            string zipfilename = "C:\\temp\\out.zip";
            using (ZipArchive zipArchive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) { }
        }
    }

.net 标准类库只是一个没有方法的类:

namespace StandardClassLib
{
    public static class Zipper
    { // Class is empty.
    }
}

我在 Visual Studio 中使用测试资源管理器并从命令行使用时收到相同的错误vstest.console.exe.

请注意,此行为仅在单元测试项目中表现出来,控制台应用程序工作正常。

谁能帮助我理解为什么这不起作用以及解决此问题的方法(如果可能)?


发生这种情况是因为测试项目需要一些额外的绑定重定向,这些重定向需要在构建过程中生成。虽然项目属性对话框有一个自动生成绑定重定向的选项,但这对库(经典单元测试项目)没有影响,因此您需要手动编辑 .csproj 文件以包括:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

更多详情和解释请参见公告 GitHub Issue.NET Standard 2.0 与 .NET Framework 和 NuGet 的问题 https://github.com/dotnet/announcements/issues/31及其链接的讨论问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 .Net 4.6.1 单元测试引用 .Net 标准项目时缺少方法异常 的相关文章

  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 如何启用 vstest.console.exe 日志记录?

    我试图查看在 Visual Studio 2013 中运行测试时究竟执行了什么 vstest 命令 如何启用 vstest console exe 日志记录 执行的命令是带有相关参数的 VSTest Console exe 当您运行测试时
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 同时使用 MSTest 和 NUnit?

    阅读有关 MSTest 和 NUnit 的内容后 我无法真正决定在我的项目中使用什么 我们使用TFS 2008和VS2010 我喜欢 MSTest 因为它集成到 VS2010 持续集成和代码覆盖率报告中 我喜欢 NUnit 因为它允许以良好
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 带 JTable 的 JScrollpane 中的背景图像

    我试图在 JScrollPane 中的 JTable 后面添加居中背景图像 背景相对于视口的位置应该居中且静态 我尝试过将 JScrollPane 添加到带有绘制图像的 JPanel 中 并使其他所有内容变为半透明 但结果很丑陋并且存在渲染
  • 向与数据库交互的 Servlet 提交表单会导致空白页面

    我有一个从数据库检查用户名和密码的 servlet Override protected void doPost HttpServletRequest req HttpServletResponse res throws ServletEx
  • 生成PasswordHash和SecurityStamp

    我有一个Registrations新用户被放入的表 稍后的过程会为该用户创建一个数据库 并从注册表中的数据 电子邮件和姓名 插入 ASP NET Identity User 记录 我想扩展这一点 以便在注册时 用户可以输入密码 然后该密码将
  • Google 云端硬盘 SDK 和 iOS 5.1

    SDK 与 iOS 5 兼容还是仅与 iOS 6 兼容 Google 示例和 iOS 6 模拟器和设备 一切正常 但 Xcode 返回 iOS 5 1 模拟器和设备 运行时错误 我正在使用 Xcode 4 5 2 我已经检查了 iOS 部署
  • 我想摆脱 .rs.WorkingDataEnv 中的 cacheKey 错误

    Error in exists cacheKey where rs WorkingDataEnv inherits FALSE invalid first argument 我用的是rm R 中的函数可删除几个数据帧 他们已被成功删除 但是
  • 关闭 Windows 资源管理器的特定实例

    我在尝试时遇到问题WM CLOSE一个 Window 资源管理器进程 发送该消息将尝试关闭 Windows Shell 资源管理器进程并提示用户关闭窗口 这不是预期的行为 我想知道如何解决它 如何优雅地关闭各个资源管理器窗口 而不同时关闭整
  • 交叉编译 C++ 项目,通用 ELF 中的重定位 (EM: 3)

    我从事 C 项目已经有一段时间了 但想将其移植到我的 Arm 处理器上 我已经拥有所有交叉编译工具 我正在使用 CodeSourcery 并且认为我可以更改我的 makefile 以指向该编译器 它使用默认的 g 编译得很好 但是当尝试 m
  • 仅在 kernel.terminate 事件后返回响应

    我的理解kernel terminate是它触发了after响应已返回给客户端 在我的测试中 情况似乎并非如此 如果我放一个sleep 10 在 kernel terminate 上调用的函数中 浏览器也会等待 10 秒 处理似乎是在发送响
  • 动态数组和预建数据

    在C语言中 我尝试执行以下操作 typedef struct int length int items 1 wchararray t typedef struct long hash wchararray t chars 2 string
  • 另一个 KeyListener/KeyBinding 问题

    呃 我很抱歉 MadProgrammer 但我只是无法让 KeyBinding 按我想要的方式工作 但我会继续查看更多教程 直到我弄清楚 但现在我已经卡住了到 KeyListener 并且它可以工作 但现在我遇到一个问题p move 实际上
  • 停止 ng2-idle 进行量角器测试

    我在用着ng2 idle https github com HackedByChinese ng2 idle一段时间后自动注销用户 我在 appComponent 构造函数中初始化它 import Idle DEFAULT INTERRUP
  • v4.x 中的 d3.time.format.multi

    在我的代码的早期版本中 我曾经像这样设置适当的区域设置格式 format decimal thousands grouping 3 currency dateTime a b e X Y date d m Y time H M S peri
  • ASP.net MVC 验证挂钩

    我在 ASP net MVC 3 中有以下视图 model Models CreateProjectViewModel Scripts jquery validate min js gt Scripts jquery validate un
  • Python 正则表达式,多行匹配模式..为什么这不起作用?

    我知道 为了解析 我应该理想地删除所有空格和换行符 但我这样做只是为了快速修复我正在尝试的东西 我不明白为什么它不起作用 我已经将不同的文本区域包装在我的文本中 带有 1 之类的包装器的文档 并尝试基于此进行解析 但无论我尝试什么 它都不起
  • 对 sklearn Pipeline + ColumnTransformer 中的列应用多个预处理步骤

    我第一次尝试 sklearn pipeline 并使用 Titanic 数据集 我想首先将缺失值归咎于Embarked然后进行一次热编码 而在Sex属性 我只想进行一种热编码 所以 我有以下步骤 其中两个步骤用于Embarked 但它并没有
  • Python Pandas:ValueError:使用可迭代设置时必须具有相等的 len 键和值

    我有一个要更改的 DataFrame df loc rowId colId myDict 将字典分配给条目 rowId colId 结果我收到以下错误 ValueError Must have equal len keys and valu
  • GWT编译的应用程序无法与php后端交互

    我正在开发一个带有 PHP 后端的 GWT 应用程序 开发过程中 一切正常 我正在从我的 webroot 开发我的 GWT 应用程序 一切都工作正常并且与 php 正确交互 但是 当我编译 GWT 应用程序并将其放置在原始 GWT 应用程序
  • jquery 未在 chrome 扩展中加载

    我正在尝试将本地 jquery 文件加载到 chrome 扩展中 这就是我的 manifest json 的样子 name TV version 0 1 description Search icons 128 icon jpg optio
  • 有没有生成三角波的单行函数?

    以类似的方式modulo产生锯齿波 它不必是连续的 这就是我的意思 int m 10 int x 0 int i 0 while i lt m 3 printf d x x x x m i 生成一个序列 0 9 三次 如下所示 请注意 峰右
  • 从 .Net 4.6.1 单元测试引用 .Net 标准项目时缺少方法异常

    运行使用的 Net 4 6 1 单元测试时出现以下异常System IO Compression ZipFile Open 如果单元测试项目引用 Net Standard 2 0 程序集 System MissingMethodExcept