不論是 ILMerge 或是 LibZ,使用上都有一些限制 (參閱: 這裡)
在此,介紹一下 Costura.Fody ,它比 ILMerge或Libz更強大好用:
1).下載 Costura.Fody - 使用VS2015 的 NuGet Package Manager
2).使用 Costura.Fody 來bundle 所有的 assemblies:
<Weavers>
<Costura IncludeDebugSymbols='false' />
</Weavers>
3).下載安裝Costura.Fody 之後,若要在VS2015設定 break point 來 debug 了,可以把 .csproj檔案修改如下:
相關連結:
在此,介紹一下 Costura.Fody ,它比 ILMerge或Libz更強大好用:
- 可將 reflection, native DLLs, 或是3rd party 有使用 reflection 的應用程式整合成一個執行檔。
- 可把 WPF 應用程式與其他 .Net 的DLL檔案 merge 成為單一執行檔。
- 比 ILMerge 有更加的壓縮比率。大概是 ILMerge 壓縮出來執行檔的70%。
1).下載 Costura.Fody - 使用VS2015 的 NuGet Package Manager
- 由 Reference 的 Manage NuGet Packages...下載 Costura.Fody (做法同 LibZ 的下載方式)
2).使用 Costura.Fody 來bundle 所有的 assemblies:
- 下載之後,在這個project 底下有一個FordyWeavers.xml,編輯此 FodyWeavers.xml,把debug symbols 排除,如下:
<Weavers>
<Costura IncludeDebugSymbols='false' />
</Weavers>
- 然後,在 VS2015 上面 Build 這個 project,<MyApp.exe> 檔案 size 會變大,變成一個單一執行檔。
*** Costura.Fody 也可以直接用在 WPF app 上面! 夠簡單吧!
3).下載安裝Costura.Fody 之後,若要在VS2015設定 break point 來 debug 了,可以把 .csproj檔案修改如下:
- <Import Project="~\..\..\Fody.targets" Condition=" '$(Configuration)' == 'Release' " />
相關連結:
沒有留言:
張貼留言