Web Deploy 3 の (ほとんど完全に文書化されていない) 「パブリック API」を使用して、Web サイトの .zip パッケージを作成し、それをサーバーに同期しています。
DeploymentBaseOptions destinationOptions = new DeploymentBaseOptions()
{
UserName = //username,
Password = //password,
ComputerName = //a server
};
using (var deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.Package, "C:/MyWebsitePackage.zip"))
{
deploymentObject.SyncParameters.Load(packageParametersFile); \\ contains some connection string information and nothing more.
DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
syncOptions.WhatIf = false;
deploymentObject.SyncTo(destinationOptions, syncOptions);
}
このコードは、運用サーバーとビルド サーバーに .NET 4.5 をインストールし、デプロイするプロジェクトも 4.5 にアップグレードするまでは完全に機能していました。現在、次のエラーが発生しています。
使用しようとしているアプリケーション プールには、「managedRuntimeVersion」プロパティが「v4.0」に設定されています。このアプリケーションには「v4.5」が必要です。詳細については、http: //go.microsoft.com/fwlink/?LinkId=221672#ERROR_APPPOOL_VERSION_MISMATCHを参照してください。
私たちのサーバーには間違いなく.Net 4.5がインストールされており、IIS Webサイトアプリケーションプールのバージョンは「.NET Framework v4.0.30319」です(v4と表示されていることは知っていますが、.NET 4.5は「インプレース」アップグレードであり、4.0 DLLを新しいバージョン番号 .30319)。
/p:VisualStudioVersion=11.0フラグ(別の Web アプリケーション ターゲット ファイルが何らかの方法で .NET 4.5 アプリケーションの展開を可能にするために使用されます)。
Web Deploy API がこのように不平を言う理由と、MSBuild ソリューションと同じ方法でこのエラーを解決する方法を知っている人はいますか?