我试图加载我的网站,我得到这个错误消息:
无法识别的属性'targetFramework'。注意,属性名是区分大小写的。
<compilation debug="true" targetFramework="4.0">
该网站在我的本地PC上运行良好,但当我将其加载到主机并试图在线查看时,它无法打开。
我试图加载我的网站,我得到这个错误消息:
无法识别的属性'targetFramework'。注意,属性名是区分大小写的。
<compilation debug="true" targetFramework="4.0">
该网站在我的本地PC上运行良好,但当我将其加载到主机并试图在线查看时,它无法打开。
当前回答
可能是你有自己的MSBUILD proj文件,并且正在使用<AspNetCompiler>任务。在这种情况下,您应该为. net4添加ToolPath。
<AspNetCompiler
VirtualPath="/MyFacade"
PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
Updateable="true"
Force="true"
Debug="false"
Clean="true"
ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">
</AspNetCompiler>
其他回答
我有同样的问题,我发现这个漂亮的powershell脚本更新所有的应用程序池在同一时间: https://gallery.technet.microsoft.com/scriptcenter/How-to-set-the-IIS-9c295a20
确保在顶部设置$IISAppPoolDotNetVersion = "v4.0"变量。
打开项目->按Shift + F4(打开属性页)->选择Build ->在目标框架中选择。net Framework 4 -> OK
通过选择.Net Framework v4.0.3xxxxx创建一个新池
使用管理管道模式:集成
将其分配到您的站点并完成。
可能是你有自己的MSBUILD proj文件,并且正在使用<AspNetCompiler>任务。在这种情况下,您应该为. net4添加ToolPath。
<AspNetCompiler
VirtualPath="/MyFacade"
PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
Updateable="true"
Force="true"
Debug="false"
Clean="true"
ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">
</AspNetCompiler>
如果您正在使用IIS Express,它将为您运行的每个站点创建一个新配置,并将其绑定到url(主机/端口)。但是,当它使用相同的端口打开一个新项目时,它不会刷新配置。
这意味着如果您有一个使用CLR 2.0(。NET Framework 2.0到3.5)在某个端口上运行,然后在同一端口上使用CLR 4(。NET Framework 4.x+),新项目将尝试使用clr2运行,这是失败的-在这种情况下,它甚至不识别“targetFramework”属性。
一个解决方案是清理IIS Express站点,但最简单的方法是更改端口,以便IIS Express为您的项目创建一个新站点(使用CLR 4)。