Domanda

Ho preso un file wsp e ho fatto il mio stsadm -o opensolution come al solito. Poi sono entrato in amministrazione centrale- > gestione della soluzione e si è presentato bene. Quindi ho distribuito la web part, finora nessun problema.

Il problema è quando vado ad aggiungerlo alla galleria webpart ( Galleria web part: Nuove web part ) di solito la web part è nell'elenco, seleziono la casella accanto ad essa e faccio clic popolare galleria ma non viene visualizzato nell'elenco? Potrei mancare qualcosa nel mio manifest.xml per causare questo? Ho appena scritto e distribuito un'altra web part in questo esatto allo stesso modo ed è andato tutto bene. Inoltre, ho scritto una webpart fittizia che non fa altro che stampare "funzionando" e l'ho provato con quello ottenendo gli stessi risultati.

Qualche idea?

È stato utile?

Soluzione

wow ... risulta che tutto ciò che mi mancava era una dichiarazione "pubblica" sulla mia classe!?!

Mi sento un idiota. Inoltre, ho dovuto eliminarlo manualmente per farlo riconoscere. Grazie a tutti!

Altri suggerimenti

Verifica che il file .webpart sia distribuito nella cartella wpcatalog del tuo sito web. A seconda della directory specificata durante il provisioning dell'applicazione Web, è necessario trovarla in una posizione simile a questa:

c: \ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 80 \ wpcatalog

Ho avuto lo stesso problema con una web part a cui stavo lavorando, ma nel mio caso ho semplicemente dimenticato di aggiungere una web part a " Articoli nella casella Funzione " . Per fare questo:

  1. In Esplora soluzioni spiega la sottostruttura della tua funzione.
  2. Fai doppio clic sull'elemento che termina con .feature .
  3. Dovresti vedere una nuova scheda con il titolo, la descrizione e l'ambito di Feature. Sotto di loro ci sono due caselle con pulsanti in mezzo. Dalla casella a sinistra selezionare la web part e premere il pulsante > (contrassegnato sull'immagine) per aggiungerla alla funzione.

NOTA: puoi anche farlo premendo il pulsante Manifest in basso e modificando manualmente il file Manifest, se sai cosa stai facendo.

Aggiunta di web part alla funzione

Questo può davvero aiutare altri avviatori di SharePoint.

A volte ho avuto lo stesso comportamento. Alla fine abbiamo scritto un cmd-tool, che esegue "stsadm - o adduzione" e quindi aggiungere alla galleria delle web part tutti i file xml per le web part.

Esiste una fonte (modifica un po '):

string cmd_StsAdm = @"C:\Program files\Common files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe";
string url_Site = "http://localhost";
string url_Web = "http://localhost";
if ( string.IsNullOrEmpty( url_Web ) ) { url_Web = url_Web; }

Console.WriteLine( "Deleting sharepoint solution" );
string args_DeleteSolution = string.Format( "-o deletesolution -name \"{0}\" -override", startInfo.fileNameWsp );
ShellWait( cmd_StsAdm, args_DeleteSolution );

string filePathWsp = "**** path to wsp file ****";
Console.WriteLine( "Adding sharepoint solution" );
string args_AddSolution = string.Format( "-o addsolution -filename \"{0}\"", filePathWsp );
ShellWait( cmd_StsAdm, args_AddSolution );

Console.WriteLine( "Deploy sharepoint solution" );
string args_DeploySolution = "-o deploysolution -name \"{0}\" -local -allowGacDeployment -url \"{1}\" -force";
args_DeploySolution = string.Format( args_DeploySolution, startInfo.fileNameWsp, url_Web );
ShellWait( cmd_StsAdm, args_DeploySolution );

int counter = 0;
foreach ( CWebPartVytvoreniInfo wpRslt in solutionInfo.WebParts ) {
    counter++;
    string msg = string.Format( "Aktivace web part {0} - {1} z {2}", wpRslt.Info.Nazev, counter, solutionInfo.WebParts.Count );
    Console.WriteLine( msg );
    string args_ActivateFeature = "-o activatefeature -id {0} -url {1}";
    args_ActivateFeature = string.Format( args_ActivateFeature, wpRslt.Info.ID, url_Site );
    ShellWait( cmd_StsAdm, args_ActivateFeature );
}

Console.WriteLine( "Connecting to sharepoint site" );
using ( Microsoft.SharePoint.SPSite site = new Microsoft.SharePoint.SPSite( url_Site ) ) {
    Microsoft.SharePoint.SPList ctg_WebParts = site.GetCatalog( Microsoft.SharePoint.SPListTemplateType.WebPartCatalog );

    counter = 0;
    foreach ( WebPartInfo wpInfo in solutionInfo.WebParts ) {
        counter++;
        string dirPath = System.IO.Path.Combine( wpInfo.DirectoryPath );
        string fileName = wpRslt.Info.Nazev + ".webpart";
        string filePath = System.IO.Path.Combine( dirPath, fileName );

        string msg = string.Format( "Uploading file '{0}' - {1} z {2}", fileName, counter, solutionInfo.WebParts.Count );
        Console.WriteLine( msg );
        using ( System.IO.FileStream fstrm = OtevritSoubor( filePath ) ) {
            ctg_WebParts.RootFolder.Files.Add( fileName, fstrm, true );
        }
    }
}

Ho scoperto che se distribuisco una web part precedentemente interrotta, devo eliminarla manualmente dopo aver rimosso la soluzione, prima di aggiungere nuovamente la soluzione

Target .NET Framework era il problema per me. Ho preso di mira .NET 3.5 e questo non ha funzionato per me. Quindi ho preso di mira .NET 3.0 e ha funzionato bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top