首页 > 解决方案 > VS 安装程序项目没有拉入所有 system.io.compression

问题描述

我有一个在 .Net 4.6.1 上用 C# 编写的解决方案。这两个项目是 Windows 服务和 VS 安装程序。Windows 服务项目有很多引用,其中两个是 system.io.compression 和 system.io.compression.filesystem。

项目编译无误;但是,当我编译 VS 安装程序项目时,我收到 system.io.compression 的文件丢失错误。我刷新了依赖项,但引用仍然没有出现。为什么安装程序项目不从 Windows 服务项目中提取引用,而所有其他资源都可用?

我尝试删除并重新添加对 Windows 服务项目的引用

我尝试将 Windows 服务项目中引用的文件添加到文件系统 > 应用程序文件夹中,它编译时没有错误,但是在安装和运行时出现以下错误

System.IO.FileLoadException:无法加载文件或程序集“System.IO.Compression,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)文件名:'System.IO.Compression,版本=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089' ---> System.IO.FileLoadException:无法加载文件或程序集'System. IO.Compression、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 例外:0x80131040)文件名:'System.IO.Compression,版本 = 4.0.0.0,文化 = 中性,PublicKeyToken = b77a5c561934e089' 警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。在 efaactagent.Jobitem.LogManagement() 的 efaactagent.Archive.Zip(String sourceFile, String destinationFile)

标签: c#.netvisual-studio

解决方案


检查所有项目中的 *.config 尝试删除所有绑定重定向并通过 PM> Get-Project –All | 重新生成它们 添加绑定重定向


推荐阅读