2010-11-15 12 views
5

Abbiamo riscontrato un problema con la nostra distribuzione su un server di produzione che esegue la raccolta siti di pubblicazione di Sharepoint 2010.Problema di distribuzione WSP di Sharepoint 2010. Impossibile distribuire nuovi file

Stiamo distribuendo il pacchetto WSP da Visual Studio a Sharepoint Management Shell (Disinstalla, reinstalla soluzione). Ha funzionato come un fascino in passato. Abbiamo aggiunto una masterpage personalizzata, file css, immagini e successivamente abbiamo aggiunto con successo layout di pagina personalizzati.

Ho anche SP in esecuzione localmente sul mio computer e tutto funziona correttamente senza problemi aggiungendo nuovi file tramite la funzione di distribuzione. Posso aggiungerli ordinatamente in una libreria di documenti o persino creare nuove cartelle dal file Elements.

Tuttavia, il problema si presenta quando distribuisco il mio WSP al server di produzione. Voglio aggiungere alcuni file JS e un file XSL alla libreria degli stili, ma i file non verranno aggiunti alla libreria di documenti. Il processo di distribuzione procede liscio senza errori e quando controllo la mia funzionalità in Sharepoint Hive, i nuovi file sono lì sul disco fisico! Tuttavia non verranno aggiunti alla Libreria documenti virtuale.

Posso aggiornare i file esistenti come la masterpage e i file CSS in modo che la funzione distribuita funzioni.

La mia ipotesi è che o abbia a che fare con problemi di autorizzazione o qualche bug nel mio codice. Ma ho fatto esattamente come abbiamo fatto prima durante la distribuzione.

Ecco come il mio file di Elements.xml assomiglia:

<?xml version="1.0" encoding="utf-8"?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <Module Name="ALayout" Url="_catalogs/masterpage" RootWebOnly="true" > 
    <File Path="ALayout\_a_intra.master" Url="_a_intra.master" Type="GhostableInLibrary" /> 
    </Module> 
    <Module Name="ALayoutStyles" Url="Style Library" RootWebOnly="true" > 
    <File Path="ALayout\styles\z_aintra_core.css" Url="z_aintra_core.css" /> 
    <File Path="ALayout\styles\aintra_std.css" Url="aintra_std.css" /> 
</Module> 
    <Module Name="ALayoutStyleImages" Url="Style Library/img" RootWebOnly="true" > 
    <File Path="ALayout\styles\img\a-logobig.png" Url="a-logobig.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\bg.png" Url="bg.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\divider.png" Url="divider.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\nav-bg-hovered.png" Url="nav-bg-hovered.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\nav-bg-radius-left.png" Url="nav-bg-radius-left.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\nav-bg-radius-right.png" Url="nav-bg-radius-right.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\nav-bg-selected.png" Url="nav-bg-selected.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\nav-bg.png" Url="nav-bg.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\nav-divider.png" Url="nav-divider.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\top_bg.png" Url="top_bg.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\user-account-radius-left.png" Url="user-account-radius-left.png" Type="GhostableInLibrary" /> 
    <File Path="ALayout\styles\img\user-account-radius-right.png" Url="user-account-radius-right.png" Type="GhostableInLibrary" /> 
    </Module> 
    <Module Name="ALayoutScript" Url="Style Library/js" RootWebOnly="true" > 
    <File Path="ALayout\js\script.js" Url="script.js" Type="GhostableInLibrary" /> 
    <File Path="ALayout\js\plugins.js" Url="plugins.js" Type="GhostableInLibrary" /> 
</Module> 
    <Module Name="ALayoutScriptLibs" Url="Style Library/js/libs" RootWebOnly="true" > 
    <File Path="ALayout\js\libs\jquery-1.4.2.min.js" Url="jquery-1.4.2.min.js" Type="GhostableInLibrary" /> 
    </Module> 
</Elements> 

Gli ultimi due moduli (per JavaScript) è di quelli che non posso distribuire alla raccolta documenti. Ho provato diverse librerie di documenti ma ancora non funziona sul server di produzione, solo localmente. E non posso distribuire a Hive Sharepoint tramite Feature.

Chiunque può pensare a qualcosa che ho perso?

+0

la cartella js esiste già? –

+0

Prima ho pensato che fosse il problema, quindi ho aggiunto una cartella manualmente. Ancora non ha funzionato. Ho provato anche a distribuire direttamente in Style Library. Ho anche provato diverse cartelle, ad esempio, _catalogs/_masterpage, _layouts, ecc. Senza fortuna.E il file XSL (Non in codice) deve essere aggiunto alla Libreria stili/Fogli/cartella stile XSL perché ne ho bisogno per lo stile CQWP, quindi l'aggiunta all'hive di Sharepoint non è una soluzione. – Anandasama

+0

Sei sicuro di non aver riscontrato errori? Sembra che potrebbe essere un errore e interrompere l'elaborazione prima che arrivi ai file JS. Il tuo file XML sembra ok, quindi il problema è da qualche altra parte: molto probabilmente nel tuo codice o nella configurazione del server. –

risposta

5

Wow, la soluzione è stata semplice. Ho disattivato la funzione nell'amministrazione di Sharepoint, l'ho riattivata e i nuovi file sono stati distribuiti.

PERCHE 'è successo, non lo so. Se la versione di I mia funzione invece di disinstallare-> aggiungerla potrebbe essere riparata? Perché il comportamento è diverso nella farm di produzione rispetto al locale? ecc.

+0

Grazie !! Sei un vero eroe! Hai salvato la giornata! Grazie. – robsonrosa

+0

uguale per me. grazie ! – wallou

1

Ci sono alcuni punti che voglio portarti a conoscenza. Basta controllare se li stai già seguendo ...

  1. Spero che tu abbia la cartella "js" nella tua soluzione VS (sotto modulo ALayout).
  2. Aggiungere IgnoreIfAlreadyExists = attributo "FALSE" al nodo

    File Path = "ALayout \ js \ libs \ jquery-1.4.2.min.js" url = "jquery-1.4.2.min.js "type =" "IgnoreIfAlreadyExists = "GhostableInLibrary FALSE"/

  3. Usa ULSViewer per vedere eventuali errori durante la distribuzione sulla produzione ...

+0

Grazie per i tuoi punti! 1. sì ho la cartella js nella mia soluzione. I percorsi funziona. Nella mia macchina VM locale viene distribuito tutto. Tuttavia nella farm di produzione non lo è. 2. IgnoreIfAlreadyExists ... Ho visto alcuni esempi usando questo, ma non ho mai capito cosa significasse. Cercherò. Grazie! 3. Ho controllato il visualizzatore ULS e nessun errore durante la distribuzione. Aggiornamento – Anandasama

+0

: IgnoreIfAlreadyExists non ha funzionato. – Anandasama

Problemi correlati