Implantado Web Part não aparecendo em 'Galeria de Web Parts: New Web Parts'
-
03-07-2019 - |
Pergunta
Eu levei um arquivo WSP, e fiz o meu stsadm -o addsolution como de costume. Depois fui para Administração- Central> gerenciamento de soluções e ele mostrou-se muito bem. Então eu implantado a parte web, sem problemas até agora.
O problema é quando vou para adicioná-lo à galeria webpart ( Galeria de Web Parts: New Web Parts ) geralmente a parte web está na lista, verifique que a caixa ao lado e clique galeria de preenchimento , mas é não aparecendo na lista? Eu poderia estar faltando alguma coisa na minha manifest.xml para causar isso? Eu só escreveu e implantado outra parte web esta exata ??em> mesma maneira e ele foi muito bem. Além disso, eu escrevi um webpart manequim que não faz nada, mas imprimir "trabalho" e tentou fazê-lo com isso obter os mesmos resultados.
Todas as idéias?
Solução
wow ... Acontece que tudo o que estava faltando era uma declaração de 'público' na minha classe!?!
Eu me sinto como um idiota. Mas também, eu tinha para excluí-lo manualmente para obtê-lo reconhecido. Obrigado a todos!
Outras dicas
Verifique se o arquivo .webpart implantado para a pasta wpcatalog do seu web site. Dependendo do que diretório foi especificado quando o provisionamento do aplicativo web, você deve encontrá-lo em um local semelhante a esta:
c: \ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 80 \ wpcatalog
Eu tive o mesmo problema com a Parte I Web venho trabalhando, mas no meu caso eu simplesmente se esqueceu de adicionar uma peça Web para "Itens no recurso" caixa. Para fazer isso:
- Em Solution Explorer desdobrar o sub do seu recurso.
- Clique duas vezes o item terminando com
.feature
. - Você deverá ver uma nova guia com Característica título, descrição e escopo. Abaixo deles há duas caixas com botões no meio. A partir da caixa da esquerda selecione seu Web Part e pressione o botão
>
(marcado na imagem) para adicioná-lo ao recurso.
NOTA:. Você também pode fazer isso pressionando o botão Manifest
na parte inferior e editar o arquivo de manifesto manualmente, se você sabe o que está fazendo
Isso realmente pode ajudar outros iniciantes SharePoint.
Eu tive algum tempo mesmo comportamento. Finalmente, escreveu uma ferramenta cmd, que executar "stsadm - o addsolution". E depois adicionar à galeria de parte da web todos os arquivos XML para partes da web
Há fonte (little-bit editado):
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 );
}
}
}
Eu descobri que se eu implantar uma parte da web que foi quebrado anteriormente eu tive que excluir manualmente-lo após a remoção da solução, antes de voltar a adição da solução
alvo .NET Framework foi o problema para mim. I alvo .NET 3.5 e que não funcionou para mim. Então eu alvejado .NET 3.0 em vez disso, e que funcionou bem.