.net – 如何维护两个单独的项目,但将它们合并为一个DLL?
发布时间:2020-12-14 01:36:17 所属栏目:Windows 来源:网络整理
导读:我希望我能在这里找到一些简单的东西.我正在努力维护两个独立的项目 ProjectName.Core ProjectName.Infrastructure 这是在典型的洋葱架构中进行的,因此我可以松散地耦合我的服务并获得更大的灵活性. Infrastructure项目引用Core项目.编译后,它们会生成这些DL
我希望我能在这里找到一些简单的东西.我正在努力维护两个独立的项目
ProjectName.Core & ProjectName.Infrastructure 这是在典型的洋葱架构中进行的,因此我可以松散地耦合我的服务并获得更大的灵活性. Infrastructure项目引用Core项目.编译后,它们会生成这些DLL ProjectName.Core.dll & ProjectName.Infrastructure.dll 但是我希望它只生成1个dll. ProjectName.Infrastructure.dll (or even ProjectName.dll) 我曾尝试使用ILMerge来执行此操作,但由于Infrastructure引用了Core,因此它会抛出异常,因为它无法找到Core dll.它显然不是在寻找自己. 现在我需要维护单独的项目,因为我有一些其他组合引用Core和另一个将连接在一起的项目,例如 ProjectName.Core & ProjectName.DataAccess & ProjectName.Web 编辑:我当前的解决方案使用Nant构建脚本调用ILMerge.它成功地合并在一起.但是当我尝试使用合并的DLL时,它会引发异常,因为它无法找到Core库. <target name="merge.core"> <property name="temp.dir" value="${build.dir}Temp"/> <mkdir dir="${temp.dir}" if="${not directory::exists(temp.dir)}"/> <property name="tools.dir" value=""${directory::get-current-directory()}Tools&;quot;"/> <exec program="ToolsILMergeILMerge.exe" workingdir="."> <arg value="/t:Library"/> <arg value="/ndebug"/> <arg value="/out:"${build.dir}TempProjectName.Infrastructure.dll""/> <arg value=""${build.dir}ProjectName.Core.dll""/> <arg value=""${build.dir}Xceed.Compression.dll""/> <arg value=""${build.dir}ProjectName.Infrastructure.dll""/> <arg value=""${build.dir}ProjectName.Infrastructure.XmlSerializers.dll""/> </exec> <delete file="${build.dir}ProjectName.Core.dll"/> <delete file="${build.dir}Xceed.Compression.dll"/> <delete file="${build.dir}ProjectName.Infrastructure.dll"/> <delete file="${build.dir}ProjectName.Infrastructure.XmlSerializers.dll"/> <move file="${build.dir}TempProjectName.Infrastructure.dll" tofile="${build.dir}ProjectName.Infrastructure.dll"/> <delete dir="${temp.dir}" if="${directory::exists(temp.dir)}"/> </target> 要更清楚一点.我可以使用Core库中的对象,但不能使用Infrastructure库.因为一旦它试图实例化其中一个对象,似乎.NET试图加载依赖,但无法找到它. 解决方法
使用
ILMerge.它开箱即用.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- xaml – 未检测到已安装的组件.无法解析TargetName HighCon
- batch-file – 如何使用通配符文件名作为命令行参数调用Win
- windows-server-2008-r2 – Win2008R2:暴力攻击预防
- Windows下用Charles对Android抓包HTTPS
- windows下不重启电脑使修改后的环境变量生效的方法
- 是否可以在Windows和Linux之间共享PostgreSQL数据库?
- 适用于Windows家长控制API的C#示例
- Windows server 2008 R2安装DHCP服务器
- windows-desktop-gadgets – 在没有Visual Studio的情况下调
- windows – 为什么chkdsk在一个特定的索引上需要很长时间?
推荐文章
站长推荐
- Windows shell /命令提示符?
- windows – 如何使用FILE_SHARE_READ使CreateFil
- 安装程序 – 我需要一个安装我的软件和先决条件的
- / v / qn参数对windows静默安装程序有什么作用?
- Windows Phone 8.1 C#app:仅在发布模式下的真实
- windows – 是否可以在Visual Studio中构建Monot
- windows-phone-7 – 在WP7中创建自定义应用程序主
- windows-7 – Windows 7 – 提升的命令提示符上下
- Windows – 如何让PowerShell保持命令窗口打开?
- windows – 当我从Perl调用命令时,如何禁止“通知
热点阅读