背景信息: 現狀問題: 最近在用VS2013去生成獨立EXE文件的時候報錯:"Fody is only supported on MSBuild 16 and above. Current version: 15." 報錯原因:因為VS2013版本過舊,現在Fody到5.0+,Costura.Fod ...
背景信息:
使用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