c#合并多个dll文件到目标

今天想整理一下最近写过的代码,想把常用功能打包成dll,方便后续使用,但是一个Library build出来之后一堆依赖dll,这样不方便在接下的项目使用,于是就在网上搜索,发现了一个好工具,不用写一行代码就可轻松实现合并多个dll,当然build的时候还会产生出依赖的dll,但引用的时候可以不考虑这些依赖,一款名为Fody.Costura的工具。Fody.Costura是一个Fody框架下的插件,可通过Nuget安装到VS自己的工程中。安装之后,rebuild一下,就可以将项目所有依赖的DLL(甚至PDB)文件全部关联到exe或者dll文件里。

原文地址:https://www.cnblogs.com/Grasslands/p/12064099.html

时间: 2024-11-05 18:35:28

c#合并多个dll文件到目标的相关文章

多个dll文件打包成合并一个dll,通过使用ILMerge

将多个dll合并成一个dll,可以方便其他人或者其他公司调用,或者是自己的另一个项目来调用. 1.首先到微软官网下载ILMerge .下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17630 2.按照到电脑之后,通过cmd,进入到安装目录 3.命令参数 /target: [必选]可以简写为 /t: 指定输出组件的类型,有library/EXE/WINEXE; (如果是EXE,则程序在执行的时候将出现一个DOS窗口(即使

关于.h,.lib,.dll文件

1 .h文件: (1) .h只做声明,编译后不产生代码,#include 完全等价于把 .h 文件拷贝 到 .c 中: (2)函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误: (3)C文件是编译器运行的最小单位,每个C文件会被编译成一个独立的目标文件(二进制):——obj文件 (4)连接器是以目标文件为单位,它将一个或多个目标文件进行函数与变量的重定位,生成最终的可执行文件: tips: (1)只有声明没有定义,编译阶段不会报错: (2).h声明的函数必然能在编

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图: 3.因为要调用Unity中的相关文件,所以这里要引入外部文件.首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed 如

LIB文件和DLL文件的作用

(1)lib是编译时需要的,dll是运行时需要的.如果要完成源代码的编译,有lib就够了.如果也使动态连接的程序运行起来,有dll就够了.在开发和调试阶段,当然最好都有.(2)一般的动态库程序有lib文件和dll文件.lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的.如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中.如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中.静态编译的lib文件有好处:给用户安装时就

C#调用C++ DLL 文件

说来惭愧,都注册一年多了,却没有发表过一篇正式的博文,中间很多学习的过程也没有记录下来.如今到了一个新的环境,也有了学习的机会,一定要把每天的收获记录一下. 要做的东西需要引用C++编写的DLL,刚开始从网上看到觉得挺麻烦的就没有仔细研究,如今看到别人写的文章,感觉也不是多难.下面分享一下: 1.整一个DLL 使用C++创建一个动态库项目,应用程序设置中选择“DLL” 打开CPPDemo.cpp文件,添加如下代码 #include "stdafx.h"extern "C&qu

dll文件32位64位检测工具以及Windows文件夹SysWow64的坑(很详细,还有自动动手编程探测dll)

阅读目录 dll文件不匹配导致数据库无法启动 究竟是System32还是SysWow64 区分dll文件32位64位的程序让我倍感迷惑 再次判断究竟是System32还是SysWow64——意想不到的坑 Program Files (x86)与Program Files 32位程序真的需要访问System32吗 32位程序与64位程序的区别总结 参考资料 自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program

在VS2010上使用C#调用非托管C++生成的DLL文件

背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认选项: 最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟

如何使一个你没有源代码的DLL文件变为强命名的DLL

转载: 有时候你会需要一个DLL是强命名的,比如你想把这个文件放到GAC里面.如果这是一个第三方的DLL,你没有源代码,这会是一件比较麻烦的事情.有一个方法可以解决这个问题. 在VS.NET的命名行窗口下,输入如下的代码. 1 ,生成一个KeyFile sn -k keyPair.snk 2, 得到程序集的MSIL ildasm SomeAssembly.dll /out:SomeAssembly.il 3 ,为了避免冲突,把原来的DLL文件改名 ren SomeAssembly.dll Som

lib和dll文件的区别和联系

什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37)    (1)lib是编译时需要的,dll是运行时需要的. 如果要完成源代码的编译,有lib就够了. 如果也使动态连接的程序运行起来,有dll就够了. 在开发和调试阶段,当然最好都有. (2)一般的动态库程序有lib文件和dll文件.lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的.如果有 dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中.如果只有lib