Pkcs12ProtectedConfigurationProviderを使用するプロジェクトがあります。Windows Server 2008 sp2またはr2を対象とする場合、Azureでこのdllを使用しても問題は発生しませんでした。ただし、Windows Server 2012(osFamily = "3")を使用してAzureに展開しようとすると、アセンブリが見つからないという例外が発生しました。
エミュレータでこれに遭遇したことをぼんやりと思い出します。解決策は、このdllをGACに追加することでした。私はグーグルで検索し、紺碧のスタートアップタスクとしてDLLをGACにインストールする方法に関するこれらの手順を見つけました。Webロールプロジェクトのルートにgacutilと関連する.cmdファイルがある限り、すべてが機能します。ただし、これを他のスタートアップコマンドがあるアプリの/startupフォルダーに移動したいと思います。
これまでのところ、これを機能させることができませんでした。gacutilに対してコマンドを実行した後、gacutilに出力を表示させることができなかったため、gacutilもあまり役に立ちません。これが私が試したことです:
csdefファイル内:
<Startup>
<!-- other tasks, such as disabling the IIS idle timeout -->
<Task commandLine="startup\gacRegistrations.cmd" executionContext="elevated" taskType="simple" />
</Startup>
gacRegistrations.cmdファイル内:
gacutil /nologo /i ..\PKCS12ProtectedConfigurationProvider.dll
exit /b 0
問題は、cmdファイル内のdllの場所を参照する構文に関係していると思います。関連するすべてのファイルは、アクションをビルドするように設定されています:noneおよび出力ディレクトリにコピー:常にコピーします。ただし、gacutil.exeファイルとcmdファイルはwebrole / bin / startupにコピーされますが、PKCS12ProtectedConfigurationProvider.dllファイルはwebrole/binの1フォルダー上にあります。
ここでの正しい構文は何ですか?やってみるべきgacutil /nologo /i ..\.\PKCS12ProtectedConfigurationProvider.dll
ですか?私が言ったように、ファイルが/ startupディレクトリにネストされていない場合、すべてが正常に機能します。