C#: 解决Fody is only supported on MSBuild 16 and above
背景信息:
使用Costura.Fody插件将自己写的程序打包成一个可以独立运行的EXE文件
我们在开发程序的时候会引用很多DLL文件,在程序完成编写后,如果不把这些引用的DLL打包,在拷贝给到别人使用的时候很不方便,每次要拷贝执行文件还要加上相应的DLL文件。那能不能把DLL等都打包到EXE文件中呢,这里就要用到Costura.Fody插件完成,超级简单方便:
打开你的解决方案,依次找到“工具”---“NuGet包管理” - “管理解决方案的NuGet程序包”,到了这一步会打开NuGet-解决方案页面,在浏览选项下面的搜索框内输入“ Costura.Fody ”,会自动搜索出Costura.Fody插件,鼠标左键单击一下Costura.Fody插件,在右边的位置会出现你的项目名称,选中你的项目名称,选择安装,Costura.Fody就成功安装到你的项目上了。再次编译项目,就会看到生成的执行文件exe大小变大了(一般都超过1M,就是把DLL都包含进去了)。
问题:安装完Costura.Fody之后再编译解决方案,报错:FodyWeavers.xml文件找不到;或者编译后发现执行文件EXE还是只有几十KB的大小(并未包含DLL文件)。
报错原因:Costura.Fody是依赖Fody的,通常在安装Fody时,FodyWeavers.xml通过 NuGet的内容功能进行部署。然而,在高版本NuGet ,没有自动创建FodyWeavers.xml文件。
解决方法:自己手动添加FodyWeavers.xml文件。将鼠标移动到你的解决方案上面,单击右键,依次选择“添加” - “新建项目” - “ XML文件 ”,注意在新建XML文件时将文件命名为“ FodyWeavers.xml “,然后将下面这段代码复制到 FodyWeavers.xml文件里面即可。
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
</Weavers>
现状问题:
最近在用VS2013去生成独立EXE文件的时候报错:"Fody is only supported on MSBuild 16 and above. Current version: 15."
报错原因:因为VS2013版本过旧,现在Fody到5.0+,Costura.Fody到4.0+,不支持低版本VS。据说是有意为之,希望大家都使用最新的VS。
解决方法:卸载掉项目中的Fody和Costura.Fody,然后手动安装低版本的Fody和Costura.Fody。
可以在VS的程序包管理器控制台中输入Install-Package Fody -Version 4.2.1来安装4.2.1版本的Fody,然后输入Install-Package Costura.Fody -Version 3.3.3来安装3.3.3版本的Costura.Fody。
参考Fody和Costura.Fody的版本链接地址:
Fody 4.2.1
Costura.Fody 3.3.3
C#: 解决Fody is only supported on MSBuild 16 and above的更多相关文章
- 【tp6】解决Driver [Think] not supported.
使用助手函数view时会出现 解决方法:使用composer安装composer require topthink/think-view
- 解决 unresolved external symbol 无法解析 _send@16(转)
(1) vc网络编程中遇到一个编译问题,原来是少了WSOCK32.LIB. 在 project-->settings-->Link-->Object/Library modules ...
- 将exe和dll打包为一个exe文件
通过Nuget安装Costura.Fody 公司项目需要支持.NET 4.0(使用VS2017),Costura.Fody库从3.2.1开始支持4.0,但是不能装最新的Fody,否则会提示: Fody ...
- Win7 VS2019安装后创建C++工程失败解决
VS2019正式上手,第1个问题创建不了工程,看起来非常类似之前VS2017更新 解决办法 https://github.com/Microsoft/msbuild/issues/4286 和上次的问 ...
- MySQL server has gone away 问题的解决方法
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是s ...
- 启动android程序和虚拟机时候出现如下错误的解决方法
启动android程序和虚拟机时候出现如下错误的解决方法. 错误重现: [2011-07-13 16:22:48 - Emulator] invalid command-line parameter: ...
- MySQL server has gone away 解决方法
应用程序(比如PHP)长时间的执行批量的MYSQL语句.执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段.比如,图片数据的处理.都容易引起MySQL server has ...
- 解决Lost connection to MySQL server during query错误方法
昨天使用Navicat for MySQL导入MySQL数据库的时候,出现了一个严重的错误,Lost connection to MySQL server during query,字面意思就是在查询 ...
- MySQL server has gone away 问题的解决方法(转)
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是s ...
随机推荐
- java基础(25):Properties、序列化流、打印流、commons-IO
1. Properties类 1.1 Properties类介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符 ...
- Python--方法/技巧在哪用的典型例子
就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到应用,还是沿用已有的方法,这样很不利于学习和掌握新姿势,从而拉长学习时间,增 ...
- JavaWeb之servlet(2)
servlet(2) ServletContext servlet的上下文 每个jvm的虚拟机中的每个web工程都只有一个ServletContext工程,即在一个web工程中,无论写了多少个Java ...
- crm-全总结
1.什么是crm 客户关系管理系统 ,以客户数据为中心建立一个信息收集.管理.分析和利用的信息系统 2.业务逻辑相关使用crm-app完成 1)路由项目分发到crm-app (别名 传参 命名空间) ...
- jQuery之概念以及基本使用
1. jQuery的概述 1.1 jQuery的概念 jQuery是一个快速.简洁的JavaScript库,其设计的宗旨是“Write Less,Do More” jQuery主要是封装了JavaSc ...
- [20190930]oracle raw类型转化number脚本.txt
[20190930]oracle raw类型转化number脚本.txt --//写一个简单oracle raw转化number脚本,简单说明:--//输入必须是c1,02 或者 c102,不支持c1 ...
- PHP代码篇(二)-- array_column函数将二维数组格式化成固定格式的一维数组,及优化查询方法
小白因为经常用到多表查询,比如获取一个会员领取的卡卷list,里面当然包含了1“会员优惠券记录表t_coupon_members”主表,然后2“门店优惠券表t_coupon”,和3“门店信息表t_sh ...
- 使用odbc从notes中导数据,配置odbc时报错
上次在配置odbc从notes中导数据时一直报错(忘记是什么错误了),后来,尝试着把notes和notesSQL的路径加入到path中就OK了!
- Python异常类型及处理、自定义异常类型、断言
异常的概念.识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误 错误回溯 查看报错 ...
- Shell命令-网络操作之基础之scp、wget
文件及内容处理 - scp.wget 1. scp:用于不同主机之间复制文件 scp命令的功能说明 scp 命令用于 Linux 之间复制文件和目录.scp 是 secure copy 的缩写, sc ...