gpt4 book ai didi

c# - 使用控制台应用程序组织第三方库的最佳方式

转载 作者:行者123 更新时间:2023-11-30 17:03:45 50 4
gpt4 key购买 nike

我在这里构建了大量控制台应用程序来运行业务流程。大多数都具有相同的性质,它们被部署到应用程序服务器,访问源数据库并将暂存数据放入目标数据库。一些访问文件共享等。

鉴于该设置,我喜欢一遍又一遍地使用相同的日志记录包 (log4net)。我将配置保存在每个 app.config 中。但是,我一直发现我“随身携带”了 log4net 的 DLL。

我的意思是,当我开始一个新项目时,我必须引用log4net。我选择不将 log4net 放入 GAC 或将其完全安装到我的开发机器上。相反,我将整个下载包放在一个目录中,通常这样做:

我获取 DLL 并在我的控制台应用程序项目中创建一个/lib 目录,然后引用它。

这个接缝的好处是我总是知道我有正确的版本,因为我将 DLL 复制到本地。我还将其与项目一起检查。

但是,缺点是我最终会得到大量项目,每个项目都有一个/lib 目录,并且通常存在相同的 DLL。

我做错了什么?我只是错过了解决方案/项目开发背后的整个想法吗?我觉得我的项目完全不同,我不希望它们全部加载到一个解决方案中。

我很想知道其他人是如何解决这个问题的。

最佳答案

你看过ilmerge了吗? ?您应该能够将 log4net.dll 合并到您的可执行文件中以使其独立。

示例用法(作为构建后步骤):

"$(SolutionDir)Lib\ilmerge" /targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319 /out:$(ProjectDir)bin\Merged\MyExe.exe MyExe.exe log4net.net40.dll

关于c# - 使用控制台应用程序组织第三方库的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18274163/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com