更新到.NET Framework 4.6后预编译视图时出现问题



我们正在将ASP.Net(MVC 5)项目从.Net Framework 4.5.2升级到.Net Framework 4.6。我们还没有更新到MVC 6。

我们已将MvcBuildViews项目属性设置为true。这在过去运行良好,但在将项目的目标框架更改为".NET Framework 4.6"后,我们在构建时会出现以下错误:

错误MSB6004:指定的任务可执行文件位置"C:\windows\Microsoft.NET\Framework64\aspnet_compiler.exe"无效。

使用以下命令行直接调用MSBuild.exe时也会发生这种情况:

C: \Program Files(x86)\MBuild\14.0\bin\MSBuild.exe.\Estream.sln/m/nologo/p:Configuration=调试;平台=混合平台/属性:MvcBuildViews=true/t:build/v:m

其他人见过类似的问题吗?使用.NET Framework 4.6预编译视图需要做哪些不同的操作?

我知道这里提到的ICompileModule和RazorPreCompileModule,但我们没有使用MVC 6。

如有任何帮助,我们将不胜感激。

很可能您没有设置TargetFramework。你的第一个危险信号将是路径。注意:

C: \windows\Microsoft.NET\Framework64\aspnet_compiler.exe

如果你查看你的项目文件(.proj),你会发现该路径是如何生成的;看起来像这样:

$(windir)\Microsoft.NET\Framework64\$(TargetFrameworkVersionNumber)

奇怪。。。我们似乎缺少TargetFrameworkVersionNumber变量?去哪儿了?

现在,如果您查看TargetFrameworkVersionNumber变量是如何设置的,您会注意到您可能缺少一个目标框架:

在Visual Studio 2015中,您的目标框架很可能是4.6.1。因此,只需添加代码:

<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'v4.6.1' ">
  <TargetFrameworkVersionNumber>v4.0.30319</TargetFrameworkVersionNumber>
</PropertyGroup>

理论上应该能解决你的问题。至少,对我们的团队来说是这样。

希望能有所帮助!

相关内容

  • 没有找到相关文章

最新更新