【问题标题】:How to include config file in WSP?如何在 WSP 中包含配置文件?
【发布时间】:2011-07-09 01:54:12
【问题描述】:

我使用 NLog 进行日志记录,现在我尝试将它也用于我的 SharePoint 解决方案。
如何指示 WSPBuilder 在 WSP 中包含 NLog.config 并将其与解决方案 dll 放在同一文件夹中?

编辑:

好的,另一种选择是将其作为 Web.nlog 放在 SharePoint 80 目录中。
我需要一个单独的功能吗? elements.xml应该写什么?

【问题讨论】:

    标签: sharepoint deployment configuration nlog wspbuilder


    【解决方案1】:

    我认为这不能完成 - 我假设是出于安全原因。

    DLL 只能部署到 GAC(仅限已签名的程序集)或 Web 应用程序的 bin 目录(通过解决方案清单以及任何所需的 CAS 策略部署)。

    如果你想在 bin 目录中的程序集旁边有额外的文件,你需要手动复制它们。

    【讨论】:

    • 感谢您的回复。拜托,你能就编辑发表你的意见吗?
    • 在一个特性中通过 elements.xml 配置的文件只能放置到 12 个配置单元(Program files \ common files \ microsoft shared \ web server extensions \ 12 \ template 目录)中。它们可以放置在 Layouts 目录的任何子文件夹中(然后它们可供场中的每个站点使用),也可以放置在激活了功能的站点中的任何文档库中。
    • 简而言之,您可能只需在解决方案中添加手动部署步骤,即可将此文件复制到可用的位置。不要为此灰心——我有时不得不手动操作,是的,感觉很脏,但有时这是唯一的方法。
    • 是的手动步骤,似乎比一些配置更改代码更容易支持。
    【解决方案2】:

    NLog.config 是否需要单独的文件,或者可以将设置集成到 web.config 文件中?如果您可以将设置集成到 web.config 文件中,则可以添加功能接收器并在 FeatureActivated 或 FeatureInstalling 事件期间使用 SPWebConfigModifications 将必要的设置写入 web.config(只需 google 即可)。您还应该确保删除 FeatureDeactivating 或 FeatureUninstalled 事件中的设置。

    【讨论】:

    • 是的,NLog 配置也可以放在web.config 中。但是,我将另一个答案标记为正确,因为从长远来看,手动操作看起来更容易维护。感谢您的努力!
    • 如果您的场中包含多个服务器,则不会,在这种情况下,您必须手动保持 web.config 文件在所有服务器上同步。此外,如果您向服务器场添加新服务器,则必须记住手动将您的设置添加到其 web.config,而如果您通过 SPWebConfigModifications 执行此操作,则会自动完成。因此,实际上,手工操作是最糟糕的方法。
    • 我没有更改web.configs,而是将特殊的web.nlog 文件放入与配置相同的目录中,因为它可以很好地与NLog配合使用。手动更改web.config 是个坏主意,但是放置一个附加文件很简单。
    【解决方案3】:

    你也应该看看这里: http://msdn.microsoft.com/en-us/library/ee413935.aspx

    我也会问这些问题:

    • 所有场的配置是否相同?只有一个网络应用程序?
    • 能否以编程方式指定 NLog 配置?

    根据您的回答,我会提出一种或多种解决方案。 web.config 的缺点是

    • 配置部署在所有 SharePoint 服务器上(该功能会处理这一点,但您必须牢记这一点,以防出现不一致的行为)
    • 如果你想修改设置没有简单的方法
    • 每次修改设置,都会回收应用程序池。

    【讨论】:

    • 只有一台服务器和一个 Web 应用程序存在问题,并且没有扩展计划,因此非常简单。不幸的是,动态加载 XML 在 NLog 中的记录有些糟糕。我不会将设置存储在 web.config / web.nlog 中 — 它们只会包含对 SharePoint CONFIG 目录中一个文件的硬编码引用,该文件可以在运行时进行修改和自动重新加载。我只需要给 NLog 初始位置即可。
    • 我明白了。在 12 Hive 中存储配置很简单,但不容易更新(无需更新 WSP 或手动更新它)。但是对于一台服务器/应用程序,应该没问题:)
    猜你喜欢
    • 2015-10-21
    • 2013-06-20
    • 2011-01-06
    • 2012-01-12
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多