展開されたWebパーツが「Webパーツギャラリー:新しいWebパーツ」に表示されない

StackOverflow https://stackoverflow.com/questions/208333

  •  03-07-2019
  •  | 
  •  

質問

wspファイルを取得し、通常どおり stsadm -o addsolution を実行しました。その後、中央管理->ソリューション管理に進み、うまくいきました。次に、Webパーツをデプロイしました。これまでのところ問題ありません。

問題は、通常WebパーツがリストにあるWebパーツギャラリー( Webパーツギャラリー:新しいWebパーツ)に追加するときに、その横のボックスをオンにしてクリックすることですギャラリーに入力するが、リストに表示されない?これを引き起こすためにmanifest.xmlに何かが足りないでしょうか?この exact と同じ方法で別のWebパーツを作成してデプロイしたところ、うまくいきました。また、「作業中」と印刷するだけのダミーWebパーツを作成しました。同じ結果を得るためにそれを試してみました。

アイデアはありますか

役に立ちましたか?

解決

すごい...私が行方不明になったのは、クラスの「パブリック」宣言だけだったことがわかりました!?!

私はばかみたいです。しかし、また、手動で削除して認識させる必要がありました。みんなありがとう!

他のヒント

.webpartファイルがWebサイトのwpcatalogフォルダーに展開されていることを確認します。 Webアプリケーションのプロビジョニング時に指定されたディレクトリに応じて、次のような場所で見つける必要があります。

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

作業中のWebパーツでも同じ問題が発生しましたが、私の場合は、「機能のアイテム」ボックスにWebパーツを追加するのを忘れていました。これを行うには:

  1. Solution Explorer でフィーチャーのサブツリーを展開します。
  2. .feature で終わるアイテムをダブルクリックします。
  3. 機能のタイトル、説明、範囲が含まれた新しいタブが表示されます。それらの下には、間にボタンがある2つのボックスがあります。左のボックスからWebパーツを選択し、> ボタン(画像上にマーク)を押してフィーチャーに追加します。

注:実行内容がわかっている場合は、下部のマニフェストボタンを押してマニフェストファイルを手動で編集することでも実行できます。

機能へのWebパーツの追加

これは、他のSharePointスターターに本当に役立つ可能性があります。

私はいつか同じ行動をしました。最後に、「stsadm-o addsolution」を実行するcmdツールを作成しました。次に、WebパーツのすべてのxmlファイルをWebパーツギャラリーに追加します。

ソースがあります(少し編集されています):

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 );
        }
    }
}

以前に壊れたWebパーツを展開する場合、ソリューションを削除した後、ソリューションを再追加する前に手動で削除する必要があることがわかりました

ターゲット.NET Frameworkが問題でした。 .NET 3.5をターゲットにしましたが、それはうまくいきませんでした。そのため、代わりに.NET 3.0をターゲットにしましたが、うまくいきました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top