VS2017 for Mac中缺失System.Deployment文件问题求助
解决Visual Studio 2017 for Mac中Emgu CV项目的引用缺失问题
我来帮你搞定VS2017 for Mac运行Emgu CV演示项目时遇到的这些问题,先从你卡住的System.Deployment缺失说起:
1. 处理System.Deployment引用缺失的问题
首先得明确:System.Deployment是Windows专属.NET Framework里的程序集,主要用于ClickOnce部署功能,Mac平台的.NET环境(包括VS for Mac支持的.NET Core/跨平台框架)根本没有这个组件——这就是你找不到它的原因。
解决思路分两种:
- 如果项目不需要ClickOnce部署:直接移除对
System.Deployment的引用,然后检查代码里有没有用到这个程序集的类(比如ApplicationDeployment),如果有,要么注释掉这部分非核心代码,要么替换成Mac兼容的部署逻辑。 - 如果必须保留相关功能:考虑把项目切换为.NET Framework(但VS2017 for Mac对.NET Framework的支持有限,可能需要调整项目类型),不过更推荐改用跨平台部署方案替代ClickOnce。
2. 解决Emgu.CV.MatInvoke类型初始值设定项异常
这个异常和Emgu CV的非托管本地库加载失败直接相关,和你之前的引用问题也有关联,给你几个实用排查步骤:
- 用NuGet自动管理依赖:别手动添加引用了,右键项目→「添加」→「添加NuGet包」,搜索
Emgu.CV安装对应稳定版本,NuGet会自动配齐所有依赖(包括Emgu.CV.Ul这类组件),比手动找靠谱多了。 - 匹配框架版本:确保你安装的Emgu CV版本和项目的.NET目标框架对应(比如项目是.NET Core 2.0,就装支持该版本的Emgu CV包)。
- 检查本地库复制设置:Emgu CV依赖非托管库,右键这些本地库→「属性」,把「复制到输出目录」设为「始终复制」,这样运行时才能正确加载。
3. 手动添加Emgu CV引用的正确姿势
如果坚持手动添加,别去.NET程序集列表里找:
- 打开你下载的Emgu CV安装包,找到对应MacOS平台、对应项目框架版本的目录(比如
Emgu.CV/lib/netstandard2.0),这里面包含所有需要的组件(包括Emgu.CV.Ul.dll),直接从这里添加引用就行。
内容的提问来源于stack exchange,提问作者m.k
相关产品推荐
相关产品推荐

