2

新しい Web パーツを作成したばかりですが、非開発サーバーに展開しようとすると、次のエラーが発生します。

既定の名前空間 ' http://schemas.microsoft.com/WebPart/v2 ' は、基本 Web パーツ プロパティ用に予約された名前空間です。カスタム Web パーツ プロパティには、一意の名前空間が必要です (プロパティの XmlElementAttribute またはクラスの XmlRootAttribute で指定)。

Web パーツを CAB ファイルに書き込み、これを使用して展開しています。

stsadm -o addwppack -filename web_part_name.CAB -url http://your_url_here -globalinstall -force 

Web パーツを追加しようとするまではすべて正常に動作しますが、ポップアップでこのエラーが表示されます。私の開発用 VM では問題なく動作します...?

任意のアイデアをいただければ幸いです、ありがとうございます。

4

4 に答える 4

1

Web パーツ定義ファイルが壊れているようです。私がやっていることは、Web パーツをページに配置してからエクスポートすることです。これは、ルート サイト コレクションのサイト設定にある Web パーツ ギャラリーを開いて、そこに Web パーツを追加するだけで実行できます。

その後、任意のページに Web パーツを配置し、Web パーツ設定でエクスポート ボタンを使用します。これにより、Web パーツに応じて .webpart または .dwp ファイルが生成されます (.webpart は MOSS 2007 ネイティブの Web パーツで使用される「新しい」定義であり、.dwp は古い Web パーツ用ですが、Web パーツの作成方法によって異なります)。

次に、エクスポートされたファイルを取得して、プロジェクトに含めます。このアプローチは、少なくとも私にとってはうまくいきます。

于 2008-12-02T17:03:01.687 に答える
0

ここでは少し知識に基づいた推測ですが、とにかく:-

まず、Web パーツにこのような XmlRoot 属性があることを確認します

[XmlRoot(Namespace = "Your.Namespace")]
public class YourWebPart: WebPart
{
...

カスタム プロパティの XmlElement 属性

    [DefaultValue(0)]
    [WebPartStorage(Storage.Shared)]
    [Browsable(false)]
    [XmlElement(ElementName = "YourProperty")]
    public Int64 YourProperty
    {         
       ...
    }

このエラーは、.NET が .DWP ファイルからのデータを無菌化し、Web パーツにカスタム プロパティを設定しようとしたときに発生します。

SharePoint は、危険なエラー メッセージにフォールバックする傾向があるため、このエラーは名前空間の競合とは無関係である可能性があると思われます。

まず、.dwp ファイルを調べます。そこにカスタム プロパティが設定されていますか。ある場合は、それらを削除して再テストしてください。

Web パーツ コードのカスタム プロパティを 1 つずつコメント アウトし、各ステップで再テストします。

これらのいずれかが問題の原因であることがわかると思います。次の質問は、まさにその理由です。

于 2008-10-16T07:28:47.200 に答える
0

Web パーツを .webpart ファイルとしてパッケージ化しましたか?

この場合、新しい v3 名前空間を使用する必要があります。v2 を使用するには、.dwp ファイルとしてパッケージ化する必要があります。

于 2008-10-16T07:33:50.640 に答える
0

はい、Web パーツ定義ファイル (*.dwp または *.webpart) が正しくない可能性があります。ここに投稿すると、エラーをすばやく見つけることができます。

于 2008-12-28T15:24:24.787 に答える