我想在Visual Studio 2013中打开在IIS 8.5上运行的ASP.NET网站。我转到打开→网站... 并导航到Web应用程序的文件夹。当我尝试打开它时,收到一条错误消息
Web项目“FolderName”的目标是“.NETFramework,Version = v2.0”,它未安装在此计算机上。要继续,请选择以下选项。
此网站之前从未在Visual Studio中打开过,因此没有与之关联的项目 - 没有.csproj文件来定义目标框架。该目录包含.aspx文件,aspx.cs文件,aspx.designer.cs文件和web.config文件。这些都没有定义任何目标框架。
还有一个 bin 目录,其中包含.pdb,.dll和.dll.config。 .dll.config文件是 定义目标框架的XML文件,但版本为4.5。这些是文件的全部内容:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
那么Visual Studio从哪里确定它的目标是.NET 2.0?
我唯一能想到的是,在同一台机器上有一个Visual Studio项目,其根文件夹名称与IIS Web应用程序相同(目录树的不同分支中的相同子文件夹名称来自IIS文件) 。实际上,Web应用程序是通过复制VS项目中的代码创建的。但VS项目的.csproj文件以.NET 4.5为目标:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
[...]
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
[...]
</PropertyGroup>
此外,打开这个项目没有问题,所以很明显VS并不认为它是针对未安装的框架。执行网络应用程序也没有任何问题。
答案 0 :(得分:0)
我遇到了同样的问题,但对我来说,即使我安装了框架版本4.6.1并使用.NET Framework Setup Verification Tool
进行了验证,它仍然缺失我让它改变我的一个项目,然后查看下拉列表中的目标框架。该列表中缺少版本4.6.1。 我使用了该列表中的“安装其他框架”选项并使用了其中一个安装程序。在我的情况下,我需要开发人员包。 之后所有项目都很好。