当某个功能被激活时,是否有人知道将资源文件部署到Web应用程序的App_GlobalResource文件夹的最佳方式?在激活时将资源文件部署到App_GlobalResource文件夹
回答
因此,作为这个问题的最后跟进,我们最终做了什么来完全自动化这个过程。
我们按照建议在清单文件中使用了ApplicationResourceFile元素。
<?xml version="1.0" encoding="utf-8"?>
<Solution SolutionId="{185E973C-3A10-4e2a-9E0F-DC14414551F9}"
xmlns="http://schemas.microsoft.com/sharepoint/"
DeploymentServerType="WebFrontEnd">
<ApplicationResourceFiles>
<ApplicationResourceFile Location="yourappname.resx"/>
<ApplicationResourceFile Location="yourappname.en-US.resx"/>
</ApplicationResourceFiles> ...
</Solution>
这确实将文件放入“资源”文件夹中。所以,我们只是从那里访问的资源,代码如下所示:
string appPath = HttpContext.Current.Request.MapPath(HttpContext.Current.Request.ApplicationPath);
ResourceManager resX = ResourceManager.CreateFileBasedResourceManager("ResourceFileName", appPath + "resources", null);
SPSecurity.RunWithElevatedPrivileges(delegate()
{
AddResource(resX, "DefaultTextBoxLabelText");
我们运行在构造函数中的代码,并从资源文件中添加条目到本地字典。您必须使用RunWithElevatedPrivileges,因为创建的新“资源”文件夹只能由AppPool帐户访问。
除非您执行一些代码并启动将计算机文件复制到每台Web前端服务器上的App_GlobalResources文件夹的SharePoint计时器作业,否则无法通过某项功能部署应用程序资源文件。
您应该让SharePoint解决方案框架将.RESX文件部署到每台服务器上的App_GlobalResources文件夹。你可以在你的WSP解决方案包的manifest.xml文件如下指定应用程序资源文件:
<?xml version="1.0" encoding="utf-8"?>
<Solution SolutionId="{185E973C-3A10-4e2a-9E0F-DC14414551F9}"
xmlns="http://schemas.microsoft.com/sharepoint/"
DeploymentServerType="WebFrontEnd">
<ApplicationResourceFiles>
<ApplicationResourceFile Location="yourappname.resx"/>
<ApplicationResourceFile Location="yourappname.en-US.resx"/>
</ApplicationResourceFiles>
...
</Solution>
当您部署使用STSADM或管理中心的WSP的解决方案包,SharePoint解决方案框架将启动计时器作业将这些文件部署到您决定部署解决方案的所有Web应用程序的App_GlobalResources文件夹中。
我们最近在我们的农场安装中遇到了同样的问题。不幸的是,在清单中添加ApplicationResourceFile条目只会将资源转移到Resources文件夹。
虽然可以手动部署从资源与STSADM -o copyappbincontent(必须每前端服务器上发布)App_GlobalResources文件的资源文件,我们结束了创建一个计时器作业手动复制文件,所列出here:
感谢所有的答案,但为SharePoint 2010的最佳解决方案是如下:
- 添加新项>模块
- 复制(或)添加您的资源文件有
- 更改“每个资源文件的“部署类型”属性设置为appGlobalResource
- 将“部署位置>路径”属性更改为空,以便资源文件正确部署到您的Web应用程序下的“App_GlobalResources”
对于SharePoint 2010,您需要更改的XML节点的名称,以便将复制到新的App_GlobalResources文件夹,而不是用C资源文件夹:\的Inetpub \ wwwroot的\ WSS \ VirtualDirectories \ 80 MSDN链接: http://msdn.microsoft.com/en-us/library/ms463158.aspx
例子:
<Solution SolutionId="{8a2f91f2-db85-4eb3-8e7c-330f05246e1a}"
DeploymentServerType="WebFrontEnd"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ApplicationResourceFiles>
<App_GlobalResourceFile Location="yourResourceFile.resx"/>
</ApplicationResourceFiles>
- 1. 在wildfly8上部署war文件后找不到资源文件
- 2. 如何将相同的资源文件部署到14个配置单元和全局资源文件夹?
- 3. 将文件从临时目录复制到资源文件夹
- 4. 在Visual Studio 2010中将资源文件部署到Sharepoint 2010
- 5. Openshift:在部署文件夹之外放置资源文件的位置
- 6. 从xcode部署资源文件
- 7. ASP.NET MVC全局资源文件部署
- 8. FileNotFoundException异常访问资源文件时后部署到Tomcat
- 9. 如何将文件添加到XCode中的资源文件夹?
- 10. 将资源文件复制到文件夹?
- 11. 无法将图像文件添加到xcode资源文件夹
- 12. 将文件从资源复制到文件夹
- 13. 文件中的资源文件夹
- 14. 资源文件夹VS Resx文件
- 15. MS部署 - 将一个文件夹部署到网站
- 16. 部署在公共目录中找不到资产文件夹
- 17. 将Visual Studio资源文件放置在“资源”以外的文件夹中?
- 18. Java保存资源文件夹到磁盘文件夹
- 19. Xcode SDL资源文件夹
- 20. Maven资源文件夹
- 21. 其他资源文件夹
- 22. 将资源包含在单独的“资源”文件夹中
- 23. Java:部署后在资源中保存文件时出错
- 24. 将文件从源文件夹复制到目标文件夹
- 25. 如何在JBoss 7中部署资源适配器激活?
- 26. 无法从资源文件夹中的文件复制到文档文件夹
- 27. 错误,同时从资源文件夹
- 28. 将外部文件夹作为资源安装在Wicket中
- 29. 将图像添加到项目资源文件夹运行时
- 30. Eclipse何时将资源复制到输出文件夹?
所以,这看起来非常接近,但是当我使用ApplicationResourceFile元素它创建了一个“资源”文件夹,并放置在文件不是有App_GlobalResources文件夹。 – webwires 2008-11-18 17:50:43