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 になりました。なぜ/どのようにそれが起こるのでしょうか?