【问题标题】:How to place resx files in App_GlobalResources folder using solutions (wsp)?如何使用解决方案(wsp)将 resx 文件放在 App_GlobalResources 文件夹中?
【发布时间】:2009-03-12 13:07:29
【问题描述】:

我已经为 SharePoint 2007 制作了很多解决方案 (wsp),并且我几乎自动化了所有需要的安装步骤,但有一件事我无法自动化。

如何制定将资源 (resx) 文件放置在虚拟应用程序的 App_GlobalResources 文件夹中的解决方案?

提前致谢。

【问题讨论】:

    标签: sharepoint sharepoint-2007 resources resx wsp


    【解决方案1】:

    您需要编写一个复制文件的功能接收器,因为无法通过 SharePoint 配置文件直接部署它们。

    当我不得不这样做时,我发现这篇博文很有用:SharePoint Resources, Types, Use and Deployment

    【讨论】:

      【解决方案2】:

      解决方案框架不支持部署到 App_GlobalResources 文件夹。

      您需要编写一个复制文件的 SharePoint 计时器作业。 timerjob 在场中的所有服务器上运行,因此每台服务器都会复制资源文件。 您应该注意的是您运行 timerjob 的上下文(域帐户)。要启动 timerjob,您需要使用农场帐户 - 运行 Web 应用程序的帐户是不够的(这包括 RunWithElevated...) - 长话短说 - 从 af Farm 功能或隐藏的 SiteCollection 功能(隐藏功能作为农场帐户运行)。

      在这里寻找更多灵感:

      Creating Custom Timer Jobs in Windows SharePoint Services 3.0

      SharePoint Resources, Types, Use and Deployment(DylanW 引用的链接)

      【讨论】:

      • 您不认为 timerjob 不是正确的解决方案吗?就像这里所说的那样,这个解决方案就像用枪杀苍蝇(抱歉从西班牙语翻译成英语)。
      • 在单服务器设置中,您只需编写一些代码即可将文件直接复制到功能接收器中。但是在多服务器设置中,确保资源文件被复制到每台服务器上的唯一方法是使用 timerjob
      • 因为 timerjob 在每台服务器上运行,并且代码仅在激活功能的服务器上运行。有一个替代解决方案,您可以使用功能装订(在 SharePoint 资源、类型、使用和部署链接中也提到) - 但我认为 timerjob 是这项工作的最佳解决方案。
      • 好的,你的论点说服了我。只是另一个问题,这项工作是执行一次还是每天安排一次更好??
      • 一次应该可以解决问题 - 但是,如果您更新资源文件,则它们不会被复制(因为计时器作业不会运行)。因此,制作一个您可以轻松停用/激活的功能,以便您可以控制操作
      【解决方案3】:

      您可以使用 stsadm 命令 CopyAppBinContent 将文件 frpm 12/Resources 复制到 App_GlobalResources。因此,您的 WSP(VS 项目)需要将您的 resx 文件放在该文件夹中。我正在使用一个解决方案,我实际上将我的 resx 文件放在 .csproj 根目录中名为 Resources 的文件夹中(只是为了避免将它们放在 12/Resources 中时出现的奇怪命名空间),然后 XCopy 它们(resx 文件)到12/我构建时的资源。

      然后将 CopyAppBinContent 添加到部署过程(.bat 文件中的一个步骤)。

      CopyAppBinContent 在场上运行时存在一些问题,为了解决这个问题,我使用了一个自定义 SPJobDefinition 来处理在场中启动该命令。

      【讨论】:

        【解决方案4】:

        我通过右键单击项目并选择将 resx 文件添加到 App_GlobalResources 文件夹: - 添加新项目 - 名为“资源”的空元素 - 然后将新的 resx 文件添加到新创建的“资源”文件夹中 - 然后在 resx 文件上将“部署类型”更改为“AppGlobalResource”

        马特

        【讨论】:

          猜你喜欢
          • 2011-01-10
          • 1970-01-01
          • 2021-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多