3

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

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

提前致谢。

4

4 回答 4

6

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

当我不得不这样做时,我发现这篇博文很有用:SharePoint 资源、类型、使用和部署

于 2009-03-12T14:41:36.743 回答
2

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

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

在这里找到更多灵感:

在 Windows SharePoint Services 3.0 中创建自定义计时器作业

SharePoint 资源、类型、使用和部署(DylanW 引用的链接)

于 2009-03-12T21:00:33.810 回答
1

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

马特

于 2011-12-08T16:41:37.717 回答
1

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

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

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

于 2009-06-06T14:47:30.880 回答