¿Alguien sabe la mejor manera de implementar un archivo de recursos en la carpeta App_GlobalResource de la aplicación web cuando se activa una característica?Implementar un archivo de recursos en la carpeta App_GlobalResource en la activación
Respuesta
Por lo tanto, como seguimiento final de esta pregunta aquí está lo que finalmente hicimos para automatizar por completo este proceso.
Lo hicimos, como se sugirió, usamos el elemento ApplicationResourceFile en el archivo de manifiesto.
<?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>
De hecho, esto puso los archivos en la carpeta "recursos". Por lo tanto, simplemente accedimos los recursos a partir de ahí en el código de este modo:
string appPath = HttpContext.Current.Request.MapPath(HttpContext.Current.Request.ApplicationPath);
ResourceManager resX = ResourceManager.CreateFileBasedResourceManager("ResourceFileName", appPath + "resources", null);
SPSecurity.RunWithElevatedPrivileges(delegate()
{
AddResource(resX, "DefaultTextBoxLabelText");
Corremos este código en el constructor y añadimos las entradas del archivo de recursos en un diccionario local. Debe usar RunWithElevatedPrivileges porque la nueva carpeta de "recursos" que se crea solo es accesible por la cuenta de AppPool.
Los archivos de recursos de la aplicación no se pueden implementar a través de una función a menos que ejecute un código e inicie un trabajo del temporizador de SharePoint que copia los archivos en la carpeta App_GlobalResources en cada servidor front-end web.
En su lugar, debe dejar que SharePoint Solutions Framework implemente los archivos .RESX en la carpeta App_GlobalResources en cada servidor. Puede especificar los archivos de recursos de aplicación de la siguiente manera en el archivo de su paquete manifest.xml solución WSP:
<?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>
Al implementar el paquete de soluciones WSP utilizando STSADM o Administración central, el marco de soluciones de SharePoint se iniciará un trabajo del temporizador que implementa estos archivos en la carpeta App_GlobalResources de todas las aplicaciones web a las que decidió implementar la solución.
Recientemente nos encontramos con el mismo problema en nuestra instalación de granja. Desafortunadamente, al agregar entradas de ApplicationResourceFile en el manifiesto solo se obtienen recursos en la carpeta Resources.
Si bien se puede implementar manualmente los archivos de recursos de recursos para App_GlobalResources con stsadm copyappbincontent (debe ser emitida en cada servidor front-end), que acabó creando un trabajo de temporizador para copiar los archivos manualmente, como se indica here:
Gracias a todos por sus respuestas, pero como la mejor solución para SharePoint 2010 es la siguiente:
- Agregar nuevo elemento> Módulo
- Copiar (o) Añadir sus archivos de recursos allí
- Cambio " Deployment Type "propiedad de cada archivo de recursos en appGlobalResource
- Cambiar la propiedad" Deployment Location> Path "a vaciar para que el archivo de recursos se despliegue correctamente en" App_GlobalResources "en su aplicación web
Para SharePoint 2010 necesita cambiar el nombre del nodo XML por lo que se copiará a la nueva carpeta App_GlobalResources en lugar de carpeta de recursos en C: \ inetpub \ wwwroot \ wss \ VirtualDirectories \ 80 enlace de MSDN: http://msdn.microsoft.com/en-us/library/ms463158.aspx
Ejemplo:
<Solution SolutionId="{8a2f91f2-db85-4eb3-8e7c-330f05246e1a}"
DeploymentServerType="WebFrontEnd"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ApplicationResourceFiles>
<App_GlobalResourceFile Location="yourResourceFile.resx"/>
</ApplicationResourceFiles>
- 1. Leyendo un archivo desde la carpeta de recursos
- 2. Android - Imágenes de la carpeta de recursos en un GridView
- 3. Implementar WAR en la carpeta WebApps derecha
- 4. JSON de análisis en Android - desde la carpeta de recursos
- 5. IntelliJ no ve la carpeta de recursos
- 6. ¿Cómo agrego archivos a la carpeta de recursos en XCode?
- 7. ¿Cuándo copia Eclipse los recursos a la carpeta de salida?
- 8. Lista de recursos en una carpeta de archivo jar?
- 9. Obtener ruta al subdirectorio en la carpeta de recursos
- 10. Con recursos predeterminados en la carpeta dibujable (tamaño MDPI), ¿qué sentido tiene la carpeta drawable-mdpi?
- 11. Java (aplicación web maven), ¿cómo obtener la ruta completa del archivo para el archivo en la carpeta de recursos?
- 12. Obtener todos los nombres de archivo que comienzan con un prefijo de la carpeta de recursos
- 13. Abrir un archivo de la carpeta assets en android
- 14. TCPDF ¿Guardar archivo en la carpeta?
- 15. JSF 2.0 Cómo vincular CSS desde la carpeta de recursos
- 16. vshost.exe archivo en la carpeta de la versión?
- 17. Crear un archivo en la carpeta userfiles (C#, Windows Forms)
- 18. Buscar un archivo con una cierta extensión en la carpeta
- 19. Acceder al archivo en la carpeta WebContent desde un servlet
- 20. Imágenes en la base de datos o en la carpeta del proyecto como recursos
- 21. ¿Cómo obtener la lista de carpetas y archivos desde la carpeta de recursos en iPhone?
- 22. Cómo implementar un archivo WAR en la máquina Linux
- 23. Activación de validación en la página Carga
- 24. Cómo usar app_GlobalResource o app_LocalResource?
- 25. Cómo copiar recursos automáticamente a la carpeta de salida DCU
- 26. cómo incrustar un archivo xml en un archivo de recursos
- 27. Sin archivo de recursos en Qt Creator
- 28. No se creó la carpeta de recursos de Maven
- 29. Cómo obtener recursos de la carpeta dibujable - AndEngine
- 30. iPhone: obtenga la ruta del archivo que se encuentra dentro de la subcarpeta de la carpeta de recursos
por lo tanto, esto parece muy cerca, pero cuando uso el elemento ApplicationResourceFile crea una carpeta "recursos" y coloca el archivo no existe en la carpeta App_GlobalResources . – webwires
Según http://www.mikhaildikov.com El manifiesto de la solución WSS contiene dos elementos con nombres que implican tener algo que ver con la implementación del archivo RESX. Son y . Desafortunadamente no son realmente útiles y básicamente pueden ser ignorados. –
webwires
Suspiro: este es un viejo error en SharePoint que estaba seguro de que MS finalmente solucionó con la actualización de la infraestructura. ¡No puedo creer que todavía esté allí! Pero aún así recomendaría ir a la solución anterior e iniciar un trabajo de temporizador de una sola vez para copiar los archivos de la carpeta de recursos a App_GlobalResources –