Развернутая веб-часть не отображается в «Галерее веб-частей: новые веб-части» - PullRequest
3 голосов
/ 16 октября 2008

Я взял wsp файл и сделал stsadm -o addolution , как обычно. Затем я вошел в центральное администрирование-> управление решениями , и оно обнаружилось просто отлично. Затем я развернул веб-часть, проблем пока нет.

Проблема в том, что когда я иду, чтобы добавить его в галерею веб-частей ( Галерея веб-частей: новые веб-части ), обычно веб-часть находится в списке, я устанавливаю флажок рядом с ней и нажимаю заполнить галерею но она не отображается в списке? Могу ли я что-то пропустить в файле manifest.xml, чтобы это стало причиной? Я только что написал и развернул другую веб-часть, точно так же, как 1011, и все было в порядке. Кроме того, я написал фиктивную веб-часть, которая ничего не делает, кроме печати «работает», и попробовал это с тем же результатом.

Есть идеи?

Ответы [ 6 ]

6 голосов
/ 17 октября 2008

вау ... получается, что мне не хватало только публичной декларации в моем классе!?!

Я чувствую себя идиотом. Но мне также пришлось удалить его вручную, чтобы он был распознан. Спасибо всем!

2 голосов
/ 17 января 2013

У меня была та же проблема с веб-частью, над которой я работал, но в моем случае я просто забыл добавить веб-часть в поле «Элементы в компоненте» . Для этого:

  1. В Solution Explorer разверните поддерево вашей функции.
  2. Дважды щелкните элемент, заканчивающийся .feature.
  3. Вы должны увидеть новую вкладку с названием, описанием и областью действия. Под ними есть две коробки с кнопками между ними. В левом поле выберите свою веб-часть и нажмите кнопку > (отмечено на изображении), чтобы добавить ее в функцию.

ПРИМЕЧАНИЕ: Вы также можете сделать это, нажав кнопку Manifest внизу и отредактировав файл Manifest вручную, если вы знаете, что делаете.

Adding Web Part to Feature

Это действительно может помочь другим пользователям SharePoint.

2 голосов
/ 16 октября 2008

Убедитесь, что файл .webpart развернут в папке wpcatalog на вашем веб-сайте. В зависимости от того, какой каталог был указан при подготовке веб-приложения, вы должны найти его в каталоге, подобном следующему:

C: \ Inetpub \ Wwwroot \ WSS \ VirtualDirectories \ 80 \ wpcatalog

1 голос
/ 17 октября 2008

Я обнаружил, что если я развернул ранее созданную веб-часть, мне пришлось вручную удалить ее после удаления решения перед повторным добавлением решения

1 голос
/ 16 октября 2008

У меня было когда-то такое же поведение. Наконец, мы написали cmd-инструмент, который запускает «stsadm-o addolution», а затем добавляет в галерею веб-частей все файлы XML для веб-частей.

Есть источник (немного отредактированный):

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 );
        }
    }
}
0 голосов
/ 03 июня 2009

Целевой .NET Framework был проблемой для меня. Я нацелился на .NET 3.5, и это не сработало для меня. Поэтому вместо этого я выбрал .NET 3.0, и это сработало.

...