SharePoint 2007 用のソリューション (wsp) を多数作成し、必要なすべてのインストール手順をほぼ自動化しましたが、自動化できないことが 1 つあります。
仮想アプリケーションの App_GlobalResources フォルダーにリソース (resx) ファイルを配置するソリューションを作成するにはどうすればよいですか?
前もって感謝します。
SharePoint 2007 用のソリューション (wsp) を多数作成し、必要なすべてのインストール手順をほぼ自動化しましたが、自動化できないことが 1 つあります。
仮想アプリケーションの App_GlobalResources フォルダーにリソース (resx) ファイルを配置するソリューションを作成するにはどうすればよいですか?
前もって感謝します。
SharePoint構成ファイルを介してファイルを直接展開する方法がないため、ファイルをコピーするFeatureReceiverを作成する必要があります。
ソリューション フレームワークは、App_GlobalResources フォルダーへのデプロイをサポートしていません。
ファイルをコピーする SharePoint タイマージョブを作成する必要があります。タイマージョブはファーム内のすべてのサーバーで実行されるため、すべてのサーバーにリソース ファイルがコピーされます。注意すべきことは、timerjob を実行するコンテキスト (ドメイン アカウント) です。タイマージョブを開始するには、ファーム アカウントを使用する必要があります - Web アプリケーションを実行するアカウントでは不十分です (これには RunWithElevated が含まれます...) - 簡単に言えば - af ファーム機能または非表示の SiteCollection 機能 (非表示の機能はファーム アカウントとして実行されます)。
ここでより多くのインスピレーションを見つけてください:
Windows SharePoint Services 3.0 でのカスタム タイマー ジョブの作成
SharePoint のリソース、種類、使用、展開(DylanW が参照するリンク)
プロジェクトを右クリックして次を選択することにより、resxファイルをApp_GlobalResourcesフォルダーに追加しました。-新しいアイテムの追加-「リソース」という名前の空の要素-次に、新しく作成した「リソース」フォルダーに新しいresxファイルを追加します-次に、resxファイルに「デプロイメントタイプ」を「AppGlobalResource」に変更します
マット
ファイル frpm 12/Resources を App_GlobalResources にコピーする stsadm コマンド CopyAppBinContent を使用できます。したがって、WSP (VS プロジェクト) は resx ファイルをそのフォルダーに配置する必要があります。私は実際に resx ファイルを .csproj ルートの Resources というフォルダーに配置し (12/Resources に配置することに伴う奇妙な名前空間を避けるため)、それら (resx ファイル) を XCopy するソリューションを使用しています。 12/ビルド時のリソース。
次に、CopyAppBinContent がデプロイ プロセスに追加されます (.bat ファイル内のステップ)。
CopyAppBinContent をファームで実行するといくつかの問題が発生するため、ファームでそのコマンドの開始を処理するカスタム SPJobDefinition を使用します。