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的,一般在安裝F​​ody時,FodyWeavers.xml經過 NuGet的內容功能進行部署。然而,在高版本NuGet ,沒有自動建立FodyWeavers.xml文件。
解決方法:本身手動添加FodyWeavers.xml文件。將鼠標移動到你的解決方案上面,單擊右鍵,依次選擇「添加」 - 「新建項目」 - 「 XML文件 」,注意在新建XML文件時將文件命名爲「 FodyWeavers.xml 「,而後將下面這段代碼複製到 FodyWeavers.xml文件裏面便可。
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
</Weavers>

 

現狀問題:ui

最近在用VS2013去生成獨立EXE文件的時候報錯:"Fody is only supported on MSBuild 16 and above. Current version: 15."插件

報錯緣由:由於VS2013版本過舊,如今Fody到5.0+,Costura.Fody到4.0+,不支持低版本VS。聽說是有意爲之,但願你們都使用最新的VS。code

解決方法:卸載掉項目中的Fody和Costura.Fody,而後手動安裝低版本的Fody和Costura.Fody。xml

能夠在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。utf-8

參考Fody和Costura.Fody的版本連接地址:
Fody 4.2.1
Costura.Fody 3.3.3
相關文章
相關標籤/搜索