这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期使用。

设置dll路径

参考C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁中间的 方法一:配置App.config文件的privatePath

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="3rdLib;MyLibs;SubFolder\Sub.dll"/>
</assemblyBinding>
</runtime>

注:多个目录用 ; 分隔。

转移dll文件

引用同一个解决方案中的项目dll或者NuGet安装的dll时,需要实时更新dll,但dll只能自动复制到软件启动目录。

可以使用生成后事件命令行来转移dll文件,如下图:



直接使用批处理指令转移dll文件,如下所示:

::检查Lib、Dll文件夹路径是否存在
IF NOT EXIST "$(TargetDir)Dll" MD "$(TargetDir)Lib"
IF NOT EXIST "$(TargetDir)Dll" MD "$(TargetDir)Dll" ::设置需要放到Lib路径下的dll
setlocal enabledelayedexpansion
set Libs[1]=Lib1
set Libs[2]=Lib2
set Libs[3]=Lib3
set Libs[4]=Lib4
set length=4 ::转移指定dll文件到Lib文件夹
for /l %%n in (1,1,%length%) do (
echo 转移 !Libs[%%n]! 相关文件
move "$(TargetDir)Libs[%%n].dll" "$(TargetDir)Dll"
move "$(TargetDir)Libs[%%n].xml" "$(TargetDir)Dll"
move "$(TargetDir)Libs[%%n].pdb" "$(TargetDir)Dll"
) ::没有指定的dll放到Dll文件夹
move "$(TargetDir)*.dll" "$(TargetDir)Dll"
move "$(TargetDir)*.xml" "$(TargetDir)Dll"
move "$(TargetDir)*.pdb" "$(TargetDir)Dll" ::把主程序的相关的文件转出来
move "$(TargetDir)Dll\$(ProjectName).xml" "$(TargetDir)$(ProjectName).xml"
move "$(TargetDir)Dll\$(ProjectName).pdb" "$(TargetDir)$(ProjectName).pdb"

注:\((TargetDir)**和**\)(ProjectName)是VS自带的宏变量,分别表示软件启动目录、项目名称。

C#项目管理引用的dll文件的更多相关文章

  1. C# 动态修改dll的签名 以及修改引用该dll文件的签名

    在读取RedisSessionStateProvider配置 提到用mono ceil 来修改程序集以及它的签名,里面GetPublicKey 和GetPubliKeyToken 方法里面那个字符串的 ...

  2. C# 将引用的DLL文件放到指定的目录下

    原文:C# 将引用的DLL文件放到指定的目录下 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sweety820/article/details/2 ...

  3. 直接引用MrAdvice.dll文件不能实现AOP拦截,教你1分钟解决这个问题

    直接引用MrAdvice.dll文件不能实现AOP拦截,教你1分钟解决这个问题.近日工作中,要实现一个功能,那就是业务层方法里面实现自动缓存.编写业务的C#开发人员只关注如何将业务代码编写正确就可以了 ...

  4. python引用C++ DLL文件若干解释及示例

    python引用C++ DLL文件若干解释及示例 首先说一下,python不支持C++的DLL,但是支持C的DLL:C++因为和C兼容可以编译为C的DLL,这是下面文章的背景与前提 首先我这儿的示例使 ...

  5. VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称 <转>

    昨天写了一个很小的winform程序,其中引用了自己写的两个dll文件. 本来认为轻松搞定,结果一编译居然提示:未能找到类型或命名空间名称..... 于是删掉两个dll重新引用,再编译结果依旧!很是郁 ...

  6. 转载:C# 将引用的DLL文件放到指定的目录下

    当软件引用的DLL比较多的时候,全部的DLL都放在exe同目录下,显得比较乱,如果能把dll放到响应的文件夹下面,就方便很多 下面是解决该问题的一种方法: 右键点击项目:属性->设置,项目会生成 ...

  7. Vs 引用第三方DLL文件 版本不一致问题 (npoi与memcached中的ICSharpCode.SharpZipLib版本冲突的解决方案)

    最近在 做 MailChimp 与网站功能 集成时,发现 MailChimp 2API 中的 MailChimp.dll  中的依赖项 SerivceStack.Text.dll (版本为3.9.71 ...

  8. VS 项目(c#)引用了 DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称

    1. 在项目上点右键-->属性-->应用程序-->目标框架-->修改为.NET Framework 4. 而我原来的设置是.NET Framework 4 Client Pro ...

  9. 引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件

    出现这个问题,是由于使用了非.NET 的动态链接库,需要注册 方法如下: 1.在搜索程序和文件中使用 regsvr32 "D:\Projects\8.01.01.03-重庆大足\lib\Va ...

  10. 关于在c#中引用外部dll文件,在页面中找不到命名空间

    最近在项目中碰到这样的问题,经过搜索,发现是vs2010的版本不对,VS默认的版本是.NET Framework 4 Client Profile,需要将他更改为.NET Framework 4 版本 ...

随机推荐

  1. 4.8 C++ Boost 应用JSON解析库

    property_tree 是 Boost 库中的一个头文件库,用于处理和解析基于 XML.Json 或者 INFO 格式的数据. property_tree 可以提供一个轻量级的.灵活的.基于二叉数 ...

  2. python函数:匿名函数,闭包,装饰器

    匿名函数 可以只有一个入参或多个入参,但返回值只能是一个函数 #普通函数 def sum(a,b): return a+b #等价的匿名函数 add = lambda a,b: a+b  闭包 举一个 ...

  3. 利用Docker、云服务器、mongodb搭建自己的测试平台

    准备一个云服务器 购买一个云服务器,在阿里云,腾讯云上购买即可. 然后创建一个实例,安装Linux操作系统,我安装的是CentOS. 记住账号和密码,可以使用ssh远程登录即可.   搭建测试环境 D ...

  4. 关于Oracle多租户架构下的每个PDB的dbtime查询

    有客户咨询在19c多租户这样的架构中,除了查询cdb本身外,还想查询具体pdb的负载(DB Time),但是使用之前的脚本发现查询不到,只显示cdb自己的结果,客户写的脚本如下: SELECT i.i ...

  5. JOISC 2023 纪录

    记录一下 JOISC 2023 的做题记录 Day1 T1 Two Currencies 给定一棵树,在边上有总计 \(m\) 个检查站,经过一个检查站需要叫 \(1\) 枚金币或者若干枚银币.\(Q ...

  6. JS模块化系统

    随着 JavaScript 开发变得越来越广泛,命名空间和依赖关系变得越来越难以处理.人们已经开发出不同的解决方案以模块系统的形式来解决这个问题. CommonJS(CJS) CommonJS 是一种 ...

  7. NC53079 Forsaken喜欢数论

    题目链接 题目 题目描述 ​ Forsaken有一个有趣的数论函数.对于任意一个数 \(x\) , \(f(x)\) 会返回 \(x\) 的最小质因子.如果这个数没有最小质因子,那么就返回0. ​ 现 ...

  8. NC51097 Parity game

    题目链接 题目 题目描述 Now and then you play the following game with your friend. Your friend writes down a se ...

  9. BasicSample项目说明

    整个示例项目,两个Fragment,ProductListFragment和ProductFragment,一个MainActivity.在MainActivity里面展示的是ProductListF ...

  10. SpringCloud Alibaba Sentinel实现熔断与限流<2020-9>

    SpringCloud Alibaba Sentinel 1.Sentinel是什么? 1.1.前言说明: 作用:实现熔断与限流 (Hystrix断路器 升级版) 文档直达: 官网中文文档 1.2.S ...