0

VS2010 でリスト スキーマ定義とリスト インスタンスを作成しました。リスト定義とインスタンスの両方を展開する機能と、新しいサブ サイトごとに新しい機能をアクティブにする機能 stappler があります。

私のリスト定義 schema.xml は次のとおりです。

 <Fields>
  <Field Name="StartDate" Type="DateTime" Required="FALSE" DisplayName="Start Date" StaticName="StartDate" ID="9ea1256f-6b67-43b0-8ab7-1d643bf8a834" SourceID="http://schemas.microsoft.com/sharepoint/v3" ColName="datetime1" RowOrdinal="0" />
  <Field Name="EndDate" Type="DateTime" Required="FALSE" DisplayName="End Date" StaticName="EndDate" ID="900503fa-4ab1-4938-be75-b40694ab97b6" SourceID="http://schemas.microsoft.com/sharepoint/v3" ColName="datetime2" RowOrdinal="0" />

サイト定義を使用して正常に展開し、新しいサイトを作成すると、リストが正常に作成され、すべてが機能します。

リストに別のフィールドを追加したいので、Visual Studio 2010 に戻ってリスト定義 schema.xml を編集し、メタデータ フィールド セクションに別のフィールドを追加します。

schema.xml は次のようになりました。

    <Fields>
  <Field Name="StartDate" Type="DateTime" Required="FALSE" DisplayName="Start Date" StaticName="StartDate" ID="9ea1256f-6b67-43b0-8ab7-1d643bf8a834" SourceID="http://schemas.microsoft.com/sharepoint/v3" ColName="datetime1" RowOrdinal="0" />
  <Field Name="EndDate" Type="DateTime" Required="FALSE" DisplayName="End Date" StaticName="EndDate" ID="900503fa-4ab1-4938-be75-b40694ab97b6" SourceID="http://schemas.microsoft.com/sharepoint/v3" ColName="datetime2" RowOrdinal="0" />

  <!-- New Field -->

  <Field Name="TestRedeploy" Type="Text" Required="FALSE" DisplayName="TestRedeploy" StaticName="TestRedeploy"  RichText="True" Sortable="FALSE" ID="A5656659-CD3E-4C84-AEAC-554DCE25434B" SourceID="http://schemas.microsoft.com/sharepoint/v3" ColName="ntext3" RowOrdinal="0" />
</Fields>

ビルドとデプロイは成功しましたが、リスト設定で新しい列が追加されたかどうかを確認すると、すべての列が削除されていることがわかりました。schema.xml を使用して新しい列をデプロイする方法を教えてください。

4

1 に答える 1

1

リストを展開する機能を再インストールしてみてください

sharepoint 2010 管理コンソールに移動して書き込みます

install-spfeature -path "14'hive の機能フォルダー名" -force

この後、IISRESET を作成し、ページをリロードします。フィールドが表示されるには、これで十分です。

ところで、xml に colname と rowordinal の値を含めないでください。これらは、フィールドの展開時に SharePoint によって自動的に提供されます。現在の展開で直面する可能性のある問題の 1 つは、colname="ntext3" にマップされたリスト フィールドが既に存在することです。

于 2012-07-17T11:55:07.367 に答える