在 Visual Studio 中使用 NLog 设置具有多个项目的 C# 解决方案

2023-12-30

我在 Visual Studio 2012 中的解决方案当前包含两个项目:

  • DLL
  • WPF 应用程序(需要 DLL 的方法)

DLL 和 WPF 应用程序都使用NLog用于记录。目前每个项目都包含NLogDLL 本身。

这是我不明白的地方:

  1. 对我来说似乎没有必要包括相同的NLog每个项目中的 DLL。
  2. 然而,DLL 应可在其他解决方案中重用,即以某种方式NLogDLL 必须包含在 DLL 项目中。

设置 Visual Studio 解决方案和/或项目的适当方法是什么?


好吧,您在使用该 DLL 的所有项目中都需要该 DLL,并且您肯定需要将其与可执行文件(在您的情况下是 WPF 应用程序)的二进制文件一起部署,以便可以在运行时找到并使用它。

我在所有项目中倾向于做的是围绕日志记录引擎创建一个包装器,这样我就不需要引用和依赖特定的第三方日志记录 API,例如 Log4Net 或 NLog,因此我在任何地方都使用我的包装器日志记录类,然后我仅在包装类的项目和可执行项目中引用日志记录程序集,以便将程序集部署到 bin 文件夹。

希望这可以帮助 ;-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Visual Studio 中使用 NLog 设置具有多个项目的 C# 解决方案 的相关文章

  • 低级挂钩/SetWindowsHookEx lParam 自动重复?

    在这里阅读 Windows PC 上如何实现键盘自动重复 https stackoverflow com questions 876852 how is keyboard auto repeat implemented on a windo
  • 如何将动态数据写入 MVC 3 Razor 中的页面布局?

    我有带有 Razor 引擎的 MVC 3 C 项目 将动态数据写入 Layout cshtml 的方法和最佳实践是什么 例如 也许我想在网站的右上角显示用户名 该名称来自会话 数据库或基于用户登录的任何内容 更新 我也在寻找将某些数据渲染到
  • 从 unsigned char* 到 char* 的转换无效

    这是一个代码 1 int main int argc char argv 2 3 signed char S psc 4 unsigned char U pusc 5 char C pc 6 7 C S 8 C U 9 10 pc psc
  • 基于多线程的 RabbitMQ 消费者

    我们有一个 Windows 服务 它监听单个 RabbitMQ 队列并处理消息 我们希望扩展相同的 Windows 服务 以便它可以监听 RabbitMQ 的多个队列并处理消息 不确定使用多线程是否可以实现这一点 因为每个线程都必须侦听 阻
  • ptrace和waitpid有什么关系?

    我正在练习使用ptrace但我不太了解它和之间的关系waitpid 这是我的测试程序 int main int argc char argv pid t pid 22092 if ptrace PTRACE ATTACH pid NULL
  • 如何将 mat 转换为 array2d

    我为dlib http dlib net face landmark detection ex cpp html那里的面部地标代码使用 array2d 来获取图像 但我喜欢使用 Mat 读取图像并转换为 array2d 因为 dlib 仅支
  • 弹出 x86 堆栈以访问函数 arg 时出现分段错误

    我正在尝试链接 x86 程序集和 C 我的C程序 extern int plus 10 int include
  • 如何使用 libclang 判断成员函数是 const 还是 volatile?

    我有一个实例CXCursor同类CXCursor CXXMethod 我想知道这个函数是否是const or volatile 例如 class Foo public void bar const void baz volatile voi
  • 为什么下面的重叠比较总是评估为 true

    我不明白为什么以下代码有警告 指出重叠比较始终评估为真 接下来的语句永远不会被执行 QVariant MainModel data const QModelIndex index int role const if index isVali
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • 如何修复此 YCrCb -> RBG 转换公式?

    我使用的公式来自这个问题 https stackoverflow com questions 8838481 kcvpixelformattype 420ypcbcr8biplanarfullrange frame to uiimage c
  • 公共基类打破了元组的空基类优化

    gcc 4 7 1 对元组进行空基类优化 我认为这是一个非常有用的功能 然而 这似乎有一个意想不到的限制 include
  • 无法在 Visual Studio 和 vcpkg 中构建 cmake 项目(致命错误 C1083)

    我今天安装了vcpkg 启用了与Visual Studio的集成 即 vcpkg集成安装 并开始安装库 我基本上安装了 cpprestsdk 并触发了 boost 库的安装 然后我在 Visual Studio CMake 中打开该项目 当
  • Xcode 新手无法用 C++ 打开文件?

    我一直在我参加的课程中使用 Windows 但我正在尝试运行基本代码来弄清楚如何从 Xcode 上的文件打开 关闭 输入 输出 而我通常在 Visual Studio 上使用的代码不是不知道为什么 谢谢 include
  • 指向 VLA 的指针

    你可能知道 VLA 的优点和缺点 https stackoverflow com a 3082302 1606345在 C11 中它们是可选的 我认为使 VLA 成为可选的主要原因是 堆栈可能会爆炸 int arr n where n 10
  • VS C# 中的依赖地狱,找不到依赖项

    我创建了一个图表 C 库 我们称之为chartlibrary 它本身依赖于多个第三方 dll 文件 在另一个可执行项目中 我们称之为chartuser 我参考了chartlibrary项目 两个项目位于 Visual Studio 中的同一
  • 多个包含带有变量定义的头文件

    我只是构建一个简单的 C 项目 代码如下所示 head h ifndef HEAD H define HEAD H int my var 100 endif src1 cpp include head h src2 cpp include
  • C# 中的类和模块有什么用

    有人可以解释一下类和模块之间的区别吗 你什么时候使用其中一种而不是另一种 我正在使用 C 更新 我的意思是相当于 VB 模块的 C 版本 这在很大程度上取决于您所指的 模块 Visual Basic 的模块 C 中没有真正等效的 VB Ne
  • 智能感知不显示评论

    如果我在 Visual Studio 2010 中输入类似的内容数据集1 我得到所有可用方法和属性的列表 智能感知 这很好用 但是 如果我在此列表中选择一个方法或属性 我不会得到 if 的描述 例如 如果我有类似的东西 public cla
  • 为什么 getch 不可移植?

    是什么使得 getch 本质上无法作为标准 C 函数包含在内 对于控制台界面来说 它是如此直观和优雅 如果没有它 要求输入单个字符总是会产生误导 因为用户可以输入多个键 更糟糕的是 您经常需要确保在读取控制台输入后清除标准输入 这甚至不是作

随机推荐

  • GCC 对弱 const 变量的优化错误

    我有一种奇怪的感觉gcc处理事情时的行为弱常量变量在不同的优化级别 即 O0 or O1 这是代码 def h 声明 const int var int copy int do copy void weak c weak var定义 do
  • SQL Server 2005,批量更新或插入

    我正在寻找一种解决方案来执行插入 重复键更新等 SQL Server 2005 中的操作 此操作可能会插入或更新大量条目 SQL Server 2008 有一个简洁的 MERGE 操作 可以完美地完成此操作 问题是我们只能使用 SQL Se
  • node.js:从标准输入读取同步?

    是否可以从node js中的stdin同步读取 因为我正在用 JavaScript 编写一个 Brainfuck 的 JavaScript 编译器 只是为了好玩 Brainfuck支持需要同步实现的读操作 我试过这个 const fs re
  • AJAX 请求中的内容类型和数据类型是什么?

    POST 请求中的内容类型和数据类型是什么 假设我有这个 ajax type POST url v1 user datatype application json contentType text plain success functio
  • 如何使用 C/C++ 获取数字锁定状态?

    我读过 Gdk 论坛链接 上面说从 3 0 版本开始就实现了获取 num lock state api 但我使用的是 2 4 版本 无法更新到 3 0 版本 因为我需要支持较低的 Linux 版本 这是讨论链接 http mail gnom
  • 如何为列表的每个索引评分

    def voting borda rank ballots list of list of str gt tuple of str list of int 该参数是一个 4 元素列表的列表 表示单个选区的排名选票 The 博尔达伯爵 htt
  • 内核模块与用户空间程序通信的最佳方式是什么?

    这个问题看起来很简单 但我想发送一个事件来通知我的用户空间程序模块缓冲区已准备好读取 例如 我的内核模块中有一个缓冲区 其数据将由用户空间程序消耗 如果所有数据都被消耗 内核模块必须在新数据到达时通知我的程序 这是生产者 消费者的典型问题
  • 验证字母输入上的文本

    任何人都在 TextBox 上使用 AngularJS 验证 这样就只能输入字母了 取决于你想要什么 字母和空格 ng pattern a zA Z s 字母无空格 ng pattern a zA Z
  • Dropzone:防止 addfile 两次

    我正在使用 dropzone 将图像上传到图库 我通过按钮提交 是否可以防止两次添加相同的文件 我不太确定是否检查名称或名称和尺寸 这是我的代码
  • EF Model First 的 1:1 关系问题

    我正在尝试使用 EF 开发一个模型优先的应用程序 我尝试了一切方法来实现分表模式和 1 1 关系 但看起来 EF 不允许我这样做 假设我确实使用 Model First 有没有一种方法可以建立 1 1 关系 而不会弄乱生成的文件和 EF 带
  • 调试时 msvsmon.exe 崩溃

    当我在 VS 2013 update 3 中调试时 msvsmon exe 在遇到断点时崩溃 它显示 调试器的工作进程 msvsmon exe 意外退出 调试将中止 我没有使用远程调试 是否可以关闭 msvsmon exe 以避免在调试时调
  • 如何改变点图的形状?

    我有一个具有以下基本结构的数据文件 Type Tm A 1 A 2 A 3 B 3 B 3 C 1 C 1 C 2 我正在使用它制作点图 ggplot data df aes x Tm fill Type geom dotplot binw
  • 加快 R 中固定宽度格式表的导入速度

    我正在从 R 中的固定宽度格式 txt 文件导入表格 该表大约有 100 个观测值和 200000 行 下面几行 11111 2008 7 31 21 2008 8 1 21 3 4 6 18 4 7 0 12 0 0 0 0 0 1 0
  • CFHTTP:第一个请求快,后续慢

    目前我在使用 CF10 的 CFHTTP 时遇到了很多麻烦 首先 我的测试脚本
  • Symfony2 学说强制转换为十进制

    我在 Symfony2 中使用 Sonata Admin Bundle 并有一个自定义过滤器 在数据库中 列是浮动的 无法更改 如果输入 1333 33 将不会有结果 一种解决方案是使用 CAST CAST o price AS DECIM
  • C for 循环突然停止[重复]

    这个问题在这里已经有答案了 我试图读取图中两个节点之间的距离并将其存储在数组中 但循环无法按预期工作 它突然停止了 Output Edge Number 4 Enter distance between two nodes Example
  • 如何保存具有列表视图的片段的状态

    这是一个情况 我想从片段 A gt B gt C 导航 B Fragment中有listview 在项目上单击我打开详细视图 C 片段 当然 我使用了替换方法并在从 B 到 C 的事务处理时添加了 addtoBackStack null 以
  • 如何更改 iOS 7 中 tabBarItems 的文本和图标颜色?

    如何更改 iOS 7 中 UITabBar 和 UITabBarItems 的文本和图标颜色 对于未选择的选项卡栏项目 默认的灰色文本看起来很暗且难以阅读 为此 您需要做两件事 1 如果要自定义TabBar本身 需要为tabBarContr
  • 使用 Spring Data 将 DBObject 插入 MongoDB

    我尝试使用 Spring Data 将以下 DBObject 插入 MongoDB BasicDBObject document new BasicDBObject document put country us document put
  • 在 Visual Studio 中使用 NLog 设置具有多个项目的 C# 解决方案

    我在 Visual Studio 2012 中的解决方案当前包含两个项目 DLL WPF 应用程序 需要 DLL 的方法 DLL 和 WPF 应用程序都使用NLog用于记录 目前每个项目都包含NLogDLL 本身 这是我不明白的地方 对我来