0

Elements.xml ファイルの「モジュール」セクションが欠落していると、「配置ステップ '機能のアクティブ化' でエラー 392 エラーが発生しました: オブジェクトの現在の状態のため、操作は有効ではありません。」の原因になりますか?

SharePoint Web パーツを再構築しようとすると、突然エラーが発生します。私が調査したことの 1 つは、おそらく Elements.xml に問題があることを示しています。私は長い間これについて何も変更していませんし、明示的に変更したこともないと思いますが、現在の状態は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListTemplateId="104">
      <Receiver>
        <Name>PostTravelItemEventReceiverItemAdded</Name>
        <Type>ItemAdded</Type>
        <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
        <Class>PostTravelWizard.PostTravelItemEventReceiver.PostTravelItemEventReceiver</Class>
        <SequenceNumber>10000</SequenceNumber>
      </Receiver>
      <Receiver>
        <Name>PostTravelItemEventReceiverContextEvent</Name>
        <Type>ContextEvent</Type>
        <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
        <Class>PostTravelWizard.PostTravelItemEventReceiver.PostTravelItemEventReceiver</Class>
        <SequenceNumber>10000</SequenceNumber>
      </Receiver>

  </Receivers>
</Elements>

そのため、現時点では、追加した 2 つの「イベント レシーバー」ハンドラへの参照しかありません。この機能しないプロジェクトの Elements.xml ファイルを、私が持っている他の Elements.xml ファイル (機能する Web パーツから) と比較しました。それらの1つは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
  <Module Name="TravelFormHelpWebPart" List="113" Url="_catalogs/wp">
    <File Path="TravelFormHelpWebPart\TravelFormHelpWebPart.webpart" Url="TravelFormHelpWebPart.webpart" Type="GhostableInLibrary" >
      <Property Name="Group" Value="Financial Affairs Forms" />
    </File>
  </Module>
</Elements>

...そして、もう1つは次のように非常に似ています:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
  <Module Name="DPSVisualWebPart" List="113" Url="_catalogs/wp">
    <File Path="DPSVisualWebPart\DPSVisualWebPart.webpart" Url="DPSVisualWebPart.webpart" Type="GhostableInLibrary" >
      <Property Name="Group" Value="Financial Affairs Forms" />
    </File>
  </Module>
</Elements>

違いは、動作中の Web アプリの Elements.xml ファイルに「モジュール」セクションがあることです。

上記のリンクから、ウィットへのもう1つの手がかりもありました。

手順 2 でエラーが解決されなかった場合は、デプロイ ターゲットが "WebApplication" に設定されているかどうかを確認してください。代わりに「Global AssemblyCache」に設定する必要があります。

...そしてここでも、どういうわけか、この機能しない WebPart は "WebApplication" に設定されましたが、他の WebPart は "GAC" に設定されています)。ただし、それを変更しても解決しませんでした-上記で報告されたのと同じエラーメッセージが引き続き表示されます。

したがって、欠落している「モジュール」セクションが問題である場合、それは明らかに以前 (動作していたとき) に存在し、(プロジェクトの「アセンブリ展開ターゲット」プロパティの変更に伴って) どうやら 86 になりました。なぜ/どのようにそれが起こるのでしょうか?

4

1 に答える 1