Ion*_*316 10 msbuild visual-studio-2013 asp.net-mvc-5 windows-10
我有一个奇怪的问题,希望有人可以帮助我.我有一台新的笔记本电脑,我试图在具有预编译视图的新机器上发布相同的ASP.NET MVC 5项目.但是,当我选中"发布时预编译 "选项进行发布时,它不会创建预编译视图.现在,如果我复制它运行的确切命令并在命令提示符中运行它,则会创建预编译视图.
这是详细信息.两台计算机都使用Visual Studio 2013 Update 5进行Windows 10周年更新(版本1607).使用相同的发布配置文件在旧计算机上发布应用程序会生成预编译的视图.在新计算机上,从" 发布Web "对话框中发布时可以正常运行,但不会生成预编译视图.然后我将这个确切的命令复制到VS用于预编译的命令提示符:
C:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p C:\MyApp\obj\Release\AspnetCompileMerge\Source -c C:\MyApp\obj\Release\AspnetCompileMerge\TempBuildDir
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它在TempBuildDir\bin目录中创建了预编译的视图!
我可以在机器之间想到的唯一区别是Windows更新.
有任何想法吗?谢谢.
您使用 x64 版本的 Windows 吗?
您也可以尝试手动设置 $(AspnetCompilerPath):
msbuild.exe /p:AspnetCompilerPath="C:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
Run Code Online (Sandbox Code Playgroud)
或将其添加到您的项目中:
<PropertyGroup>
<AspnetCompilerPath Condition=" '$(AspnetCompilerPath)'=='' " >C:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe</AspnetCompilerPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我做出了这个假设,因为该Microsoft.Web.Publishing.AspNetCompileMerge.targets文件包含以下字符串:
We can't use the in-place aspnet_compiler because it will output to the aspnet temp folder which is only suiteable to run on the current machine.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |