【发布时间】:2012-11-14 23:53:48
【问题描述】:
我们正在为 Web Deploy 3 使用(几乎完全未记录的)“公共 API”来创建我们网站的 .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 网站应用程序池版本是“.NET Framework v4.0.30319”(我知道它说的是 v4,但 .NET 4.5 是“就地”升级和替换4.0 DLL,新版本号为 .30319)。
在通过 MSBuild.exe 命令行(不是通过创建包,而是通过直接同步到服务器)进行部署时,通过添加 /p:VisualStudioVersion= 可以解决此问题 11.0 标志(这会导致使用不同的 Web 应用程序目标文件,从而以某种方式允许部署 .NET 4.5 应用程序)。
有谁知道为什么 Web Deploy API 会这样抱怨,以及我如何以与 MSBuild 解决方案相同的方式解决此错误?
【问题讨论】:
-
您好,马特,我们将研究这份报告。如果我需要小项目来重现我们的问题,我会告诉你。问候, Varun(.NET 框架兼容性)
标签: c# asp.net-mvc msbuild microsoft-web-deploy