VS2010を使用して「HelloWorld」Sharepoint2010ソリューションを作成しました。これには、機能と、ラベルを含むWebパーツのみが含まれています。VS2010で、Webパーツの[プロパティ]ウィンドウでセーフコントロールとしてWebパーツを登録しました。
ソリューションをローカルサーバーに展開すると、すべてがうまく機能します。Webパーツをページに追加できます。web.configファイルで、コントロールがSafeControlsリストに追加されます。同じソリューションを別のサーバーにインストールすると、使用可能なWebパーツのリストにWebパーツが表示されますが、ページに追加しようとすると、安全として登録されていないことが表示されます。web.configファイルを確認すると、コントロールのエントリがありません。1つ(開発サーバーからのもの)を手動で追加すると、動作が開始されます。
さて、wspファイルをインストールしたときにコントロールが登録されないのはなぜだろうか。wsp内のマニフェストには、次の行が含まれています。
<Assemblies>
<Assembly Location="abc.TestWebPart.dll" DeploymentTarget="GlobalAssemblyCache">
<SafeControls>
<SafeControl Assembly="abc.TestWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e262c75e6f6e8440" Namespace="abc.TestWebPart.VisualWebPart1" TypeName="*" />
</SafeControls>
</Assembly>
どんなアイデアでも大歓迎です!