C# 可配合 Costura.Fody 使用的 SevenZipExtractor

SevenZipExtractor 可以很方便地拿 C# 调用 7z.dll 对文件进行解压缩,对于引用多出来的 .dll 文件,如果能将这一堆文件合并成一个,岂不是美滋滋?!最后,我找到了 Costura.Fody(一个可以将源 .dll 合并到目标 exe 中的引用)目录瞬间整洁无比哇~ 如题,本文将讲述 SevenZipExtractor + Costura.Fody 的具体配置操作。 C# SevenZipExtractor with Costura.Fody

注:下文中的 A = 当前的 SevenZipExtractor 项目,B = 目标项目 将调用 SevenZipExtractor(已引用 Costura.Fody)

在此之前 B 先 NeGet 搜索引用 Costura.Fody,B 目录中将出现 FodyWeavers.xml

  1. git clone https://github.com/qwqcode/SevenZipExtractor 并打开解决方案,解决方案资源管理器 选中 SevenZipExtractor 右键 生成,SevenZipExtractor.dll 将会出现在 A/bin/Release/

  2. 复制 A 目录/bin/Release/SevenZipExtractor.dllB 目录

  3. B 中引用 SevenZipExtractor.dll 并配置 复制本地=False 如图

    20180206134927

    20180206135034

  4. B 中创建目录 Costura32Costura64 并将 A 目录/bin/Release/(x86|x64)/7z.dll 对应放入其中,对 .dll 文件进行配置 生成操作=嵌入的资源, 复制到输出目录=不复制 如图所示

    20180206135058

  5. 配置 FodyWeavers.xml

    1
    2
    3
    4
    5
    6
    <Weavers>
    <Costura CreateTemporaryAssemblies='true'
    Unmanaged32Assemblies='7z|SevenZipExtractor'
    Unmanaged64Assemblies='7z|SevenZipExtractor'
    IncludeAssemblies='SevenZipExtractor'/>
    </Weavers>

    20180206135305

  6. 好啦好啦 清理 再 生成 B 即可。现在就只有一个文件了,7z.dllSevenZipExtractor.dll 都已嵌入单个 .exe

    20180206135433

本站文章除注明转载外均为原创,未经允许不要转载哇. ヾ(゚ー゚ヾ) http://qwqaq.com/a68df31c.html
分享到