如何将 NLog 配置上传到版本控制系统?





5.00/5 (1投票)
讨论如何将 NLog 配置上传到版本控制系统,针对新手。这里提供了两种配置方法。
引言
Nlog 是一个非常强大的日志记录系统。[1] 中有一个很好的介绍。使用 NuGet,我们可以轻松地将 NLog 集成到我们的 .NET 项目中。在实际软件开发中,我们需要将我们的项目存储到版本控制系统中。自然地,我们将面临如何管理版本控制系统中的这些 NLog DLL 的问题。在这里,我分享了一种管理这些 NLog DLL 的方法。
背景
我按照以下参考 [1] 创建了一个演示 Windows 控制台应用程序。 然后我使用 Nuget 将 NLog 集成到这个演示控制台应用程序中。
我的项目文件结构如下所示
我设置了 *trunk*、*branches* 和 *tags* 文件夹,并将此项目上传到我的版本控制系统。目前,我使用 SVN 服务器和 TortoiseSVN 客户端来管理我的项目。 如果您浏览所有项目文件夹,您会看到 NLog DLL 保存在此文件夹 NLog.4.2.3 下
在此目录 NLog4.2.3 下,我们看到 DLL
一种粗暴的配置
根据我目前的版本策略,不允许将任何 DLL 上传到代码仓库,包括 NLog DLL 程序集。 所以我将我的 TortoiseSVN 客户端忽略列表设置为如下
在进行代码更改后,我决定通过 TortoiseSVN 客户端将我的代码提交到 SVN 服务器,如下面的屏幕截图所示。 我们可以看到没有 NLog DLL 提交到 SVN 服务器。
问题
在我将代码更改提交到 SVN 服务器后,我需要检出以进行新的开发。 然后此项目不包含 NLog DLL。 如果我们编译它,它将会失败。 我们如何将这些 NLog DLL 重新放入此项目中?
浏览 *project* 文件夹到 *packages* 文件夹,我们将看到一个名为 *NLog.4.2.3* 的文件夹,但是在此文件夹下,所有 NLog DLL 都缺失了。
快速修复
在我检出我项目的最新版本后,我浏览到 *packages* 文件夹。 现在完全删除文件夹 NLog.4.2.3。
然后,打开 Visual Studio 并将此项目加载到其中。 从工具菜单中,启动 NuGet 管理器,如下所示
从搜索框中,键入 "NLog" 并按 Enter 键。 我们将看到以下屏幕。 在右上角,我们将看到一个“恢复”按钮。 请点击此恢复按钮,所有缺失的 NLog DLL 将从网上下载并显示在此项目中。
在 NuGet 恢复所有缺失的 NLog DLL 后,然后重新构建此项目。 一切正常。
一种更简洁的配置
一个更简单和更简洁的配置甚至是不将 packages 文件夹上传到版本控制系统。 自动地,所有与 NLog 相关的 DLL 都不会被上传到版本控制系统。 *packages* 文件夹如下图所示
以下是将所有相关的 NLog 程序集重新加载到此项目的步骤
-
在您检出您的项目的最新版本后,然后打开 Visual Studio(我的版本是 Visual Studio 2015)。加载此项目。
-
从工具菜单中,选择“构建”=>“清理生成”。 您将看到构建成功。 没有错误。
-
按 F5 并运行您的应用程序,您将在底部的输出窗口中看到 NuGet 正在自动下载所有缺失的 NLog 程序集。 几秒钟后,您的应用程序开始运行。 它甚至更简洁。
我的理解
这背后的原因是 *project* 目录下有一个 *packages.config* 文件。 NuGet 可以使用此配置文件下载 Nlog 包的所有缺失文件。
<!--?xml version="1.0" encoding="utf-8"?-->
<packages>
<package id="NLog" targetframework="net452" version="4.2.3">
<package id="NLog.Config" targetframework="net452" version="4.2.3">
<package id="NLog.Schema" targetframework="net452" version="4.0.0">
这是我管理 NLog DLL 的方式。
如果您有更好的方法,请与 CodeProject 社区分享。
希望您喜欢这篇文章。 感谢您的阅读!
参考
历史
- 2016-02-04:初始化这篇文章
- 2016-04-09:更新了这篇文章