我们最近将我们的VS 2010和.NET 4应用程序升级到了VS 2012和.NET 4.5。我们有一个构建脚本来在测试服务器上部署该应用程序。我们有两个盒子 - 一个是装有VS 2012(全新安装)的Windows 8,另一个是装有VS 2010和VS 2012(新安装)的Windows 7。
当从Windows 8盒子运行构建脚本时,构建脚本可以很好地工作并将应用程序部署到测试服务器上。但是当从Windows 7盒子部署应用程序时,会出现以下错误:
"C:\ Achinth \ Build \ Work \ build \ qa1sb.proj"(DeployAll目标)(1) - >“C:\ Achinth \ Build \ Work \ App \ App.csproj”(ResolveReferences; MsDeployPublish目标)(2)-> (MSDeployPublish目标)-> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:Web部署任务失败。((2012年8月19日下午6:23:41)在远程计算机上处理请求时发生错误。)[C:\ Achinth \ Build \ Work \ App \ App.csproj] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:\ r [C:\ Achinth \ Build \ Work \ App \ App.csproj] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:(2012年8月19日下午6:23:41)在远程计算机上处理请求时发生错误。[C:\ Achinth \ Build \ Work \ App \ App.csproj] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:您尝试使用的应用程序池具有“managedRuntimeVersion”属性设置为“v4.0”。这个应用程序需要“v4.5”。[C:\ Achinth \ Build \ Work \ App \ App.csproj]
当从Windows 8盒子运行构建脚本时,构建脚本可以很好地工作并将应用程序部署到测试服务器上。但是当从Windows 7盒子部署应用程序时,会出现以下错误:
"C:\ Achinth \ Build \ Work \ build \ qa1sb.proj"(DeployAll目标)(1) - >“C:\ Achinth \ Build \ Work \ App \ App.csproj”(ResolveReferences; MsDeployPublish目标)(2)-> (MSDeployPublish目标)-> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:Web部署任务失败。((2012年8月19日下午6:23:41)在远程计算机上处理请求时发生错误。)[C:\ Achinth \ Build \ Work \ App \ App.csproj] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:\ r [C:\ Achinth \ Build \ Work \ App \ App.csproj] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:(2012年8月19日下午6:23:41)在远程计算机上处理请求时发生错误。[C:\ Achinth \ Build \ Work \ App \ App.csproj] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:您尝试使用的应用程序池具有“managedRuntimeVersion”属性设置为“v4.0”。这个应用程序需要“v4.5”。[C:\ Achinth \ Build \ Work \ App \ App.csproj]
从错误信息看,MSBuild使用的是VS 2010目标而不是VS 2012,这导致了错误。由于Windows 8系统没有安装VS 2010,因此它正确地使用了VS 2012目标。
请问有人能提供如何让MSBuild选择正确版本的指针吗?
Microsoft Visual Studio Solution File, Format Version 12.00
,因此您将面临相同的问题 - 在这种情况下,您需要使用 /p:VisualStudioVersion=14.0。 - White hawk