如果我使用aspnet_compiler发布一个 ASP.NET MVC 网站,它会执行与devenv相同的任务吗?还是只是预编译以最大程度地减少启动延迟?
IE 我的要求是能够编译和发布一个 ASP.NET 网站。在这种情况下,我是否应该先使用 devenv 构建网站,然后使用 aspnet_compiler 预编译和复制文件(发布)?
或者,如果我只使用 aspnet_compiler,那是否也会构建(编译)源和引用项目以关联 dll?
非常感谢您的回复。非常感谢。
如果我使用aspnet_compiler发布一个 ASP.NET MVC 网站,它会执行与devenv相同的任务吗?还是只是预编译以最大程度地减少启动延迟?
IE 我的要求是能够编译和发布一个 ASP.NET 网站。在这种情况下,我是否应该先使用 devenv 构建网站,然后使用 aspnet_compiler 预编译和复制文件(发布)?
或者,如果我只使用 aspnet_compiler,那是否也会构建(编译)源和引用项目以关联 dll?
非常感谢您的回复。非常感谢。
让我们从简短的回答开始 -aspnet_compiler.exe
与ASP.NET MVC
.
MVC 项目是由devenv.exe
或msbuild.exe
其他任何东西编译的(Roslyn 有人吗?)。但是那些 2 提供了 VS 安装。
aspnet_compiler
[在编译意义上] 用于编译 WSP - 网站项目。在 WSP 中,后面的每个代码都被编译成单独的 DLL。但是 MVC 项目编译成单个 DLL,如 WAP - Web 应用程序项目。
我怀疑你有 WSP 和 MVC,即使你有 - 仍然,它更好地编译使用devenv
,因为 devenv 编译ashx
文件而 aspnet_compiler 没有。这可能会导致运行时失败。
为了更好地理解问题,研究
网站项目与 Web 应用程序项目
虽然,我相信 VS15 WSP 不见了
我不知道是否有 aspnet_compiler 这样的东西。查看“Visual C# -> ASP.NET Web 应用程序”项目文件的一部分:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.\WebApplications\Microsoft.WebApplication.targets" />
第一行是标准 C# 目标。其次,更有趣,因为它是 ASP.NET 特定的。如果您查看它的内容,您会发现Publish目标的定义,这可能就是您要查找的内容。
对于构建和发布您的项目,您可以使用(如果有预定义的依赖项,甚至只是发布,我没有检查它)
msbuild /t:Build,Publish <project file>