C# 通过Costura.Fody把DLL合并到exe程序中

这篇具有很好参考价值的文章主要介绍了C# 通过Costura.Fody把DLL合并到exe程序中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

打包独立的exe程序有多种方法,这里只说Costura.Fody。

我们用VS发布应用程序可以借助Costura.Fody直接打包成一个独立的exe程序,但是一些非托管的做了几次都没打进去,最后成功了,这里记录一下。

首先安装Costura.Fody

C# 通过Costura.Fody把DLL合并到exe程序中,C#,c#,开发语言,Costura.Fody
C# 通过Costura.Fody把DLL合并到exe程序中,C#,c#,开发语言,Costura.Fody

或者可以通过这里获取
https://github.com/Fody/Costura/tree/develop

我的版本是5.7.0安装好了后会自动生成FodyWeavers.xml

<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
	<Costura>
	</Costura>
</Weavers>

具体的配置可以参考上面的官方下载

非托管DLL

我的项目中使用了UnRAR64一个解压缩的DLL,是C++的非托管DLL,在项目编译的时候Costura并不能自动把这个DLL打入exe。

[DllImport("unrar64.dll")]

总结我失败的原因,需要几个步骤:
1,把UnRAR64.dll设置成嵌入的资源
2,把这个文件复制到目录Costura64下
3,需要在xml里配置非托管的文件名

如图:
C# 通过Costura.Fody把DLL合并到exe程序中,C#,c#,开发语言,Costura.Fody

<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
	<Costura>
		<Unmanaged64Assemblies>
			UnRAR64
		</Unmanaged64Assemblies>
	</Costura>
</Weavers>

参考:
https://github.com/Fody/Costura/tree/develop
https://blog.csdn.net/qq_39200794/article/details/122146823文章来源地址https://www.toymoban.com/news/detail-739747.html

到了这里,关于C# 通过Costura.Fody把DLL合并到exe程序中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c#调用matlab生成的COM DLL,Matlab GUI程序封装成exe文件并在不安装Matlab的电脑上运行

    最近根据需求用Matlab写了一个简单的软件,但需要安装到其他电脑上运行,倒腾了很久最终成功在其他电脑上运行,现将方法共享给大家。 安装方法: ①程序封装 首先用Matlab写完程序并封装好(我用的是Matlab2018b,封装的时候就用matlab自带的APP封装程序就好[就是黑框框那个

    2024年01月22日
    浏览(49)
  • C#(.Net) 将非托管dll嵌入exe中

    前往我的主页以获得更好的阅读体验 C#(.Net) 将非托管dll嵌入exe中 - DearXuan的主页 https://blog.dearxuan.com/2021/12/26/C-Net-%E5%B0%86%E9%9D%9E%E6%89%98%E7%AE%A1dll%E5%B5%8C%E5%85%A5exe%E4%B8%AD/ 托管dll实际上是指C#编写的dll,可以直接右键“引用”导入 而大部分情况下,我们需要引用C++写的dll,如果你

    2024年02月08日
    浏览(60)
  • 反编译调试C#编写的exe软件和dll方法详解

    1.首先需要下载软件dnSpy.exe,下载地址: https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8 2.使用方法: 首先打开项目,我们这里可以选择dll,也可以选择exe 这边我们是打开了一个WPF写的客户端软件。 2.打开后我们去定位他的功能,根据分析这个软件代码主要在dll中,如下所示: 3.在

    2024年02月20日
    浏览(40)
  • C++开发实战(二):打开已有工程,并编译生成dll、exe等文件

    1、如下几张图,提示很友好,但我都点击了确定,并进行了运行,提示: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何。。。 2、根据提示安装依赖库 (1)搜索栏搜索应用Visual Studio Installer (2)双击打开,选择单个组件安装,选择 MFC 库(

    2024年02月06日
    浏览(97)
  • 【C#】C#调用进程打开一个exe程序

    新建WinForm程序,并写入代码,明确要调用的程序的绝对路径(或相对路径)下的exe文件。 调用代码: 这里我调用的另一个程序的路径是: F:WindowsFormsApplication2WindowsFormsApplication2binDebugWindowsFormsApplication2.exe 你可以把这个路径改成你自己要调用的程序的路径。 运行起来,点

    2024年02月09日
    浏览(42)
  • C#打包exe程序步骤详解

    每次打包时都要重新搜索一下,索性自己记录一下,翻看自己的博客喽~ 由于目前VS2019已经不支持Visual Studio Installer Projects,所以需要从官网上把Visual Studio Installer 项目扩展下载下来。 官网地址: https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017Instal

    2024年02月13日
    浏览(50)
  • 关于python程序打包成exe之后报错找不到DLL或者找不到指定的模块问题

    问题描述:我写好了python代码在本地可以完美运行。但是当我通过pysimplegui或者pyinstaller打包成exe后报错如下: File \\\"pyprojnetwork.py\\\", line 10, in module ImportError: DLL load failed while importing _network: 找不到指定的模块。 问题溯源:我回去确认了本地导入相关的库及函数是正常的。联想到

    2024年02月13日
    浏览(77)
  • C#如何打包EXE程序生成setup安装文件

    项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。 这里记录一下打包过程。 1:首先获取打包插件,如果你的VS已经安装,忽略此步骤。 点击 工具-扩展和更新,选择联机,搜索installer,安装。 Vs2010以上版本基本上都有安装。 2:创建一个安装向导项目 创建过程

    2024年02月12日
    浏览(42)
  • C#开发DLL,CAPL调用(CAPL>> .NET DLL)

    ret为dll里函数返回的值。 在visual studio中建立。

    2024年02月08日
    浏览(46)
  • QT运行exe遇到Qt5Core.dll等dll文件缺失及无法定位程序输入点于动态链接库问题解决方法

    QT运行exe相关问题解决方法, 保姆级 ,亲测有效! 如果运行exe文件出现的问题如下图所示,这是由于安装路径缺失相应的dll导致的。(其他dll文件缺失解决方法同理) 解决方法: 在自己下载下来的文件中寻找相应的dll文件并复制到安装路径中。以我自己为例: 在上图的路

    2024年02月17日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包