ASP.NET 5:发布时我的输出DLL在哪里?

时间:2015-09-17 06:32:47

标签: msbuild asp.net-core asp.net-core-mvc dnx dnu

发布ASP.NET 5 Web应用程序时,我的输出DLL在哪里?

运行MSBuild dnu publish时,发布目录如下所示:

  • approot 文件夹:包,运行时和源代码
  • wwwroot 文件夹:web.config和AspNet.Loader.dll
  • 网络
  • web.cmd
  

MSBuild.exe" C:/MyApplication/MyProj.xproj" / t:Build,FileSystemPublish / p:PublishConfiguration = Release / p:PublishOutputPathNoTrailingSlash =" C:/ a / MyApplication"

从日志记录输出中我可以看到web.cmd被调用:

  

dnu发布" C:/ MyApplication" --out" C:/ a / MyApplication" - 配置发布--runtime dnx-clr-win-x86.1.0.0-beta6 --quiet

如果我查看@"%~dp0approot\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnx.exe" --appbase "%~dp0approot\src\MyApplication" Microsoft.Framework.ApplicationHost web %* ,我可以看到DNX确实从源代码运行应用程序:

web.cmd

我能够成功将IIS指向wwwroot目录。

IIS如何知道呼叫_id?这是在生产环境中提供ASP.NET 5应用程序的正确方法吗?

2 个答案:

答案 0 :(得分:3)

  1. IIS不会调用web.cmd。 IIS知道如何从AspNet.Loader文件夹加载wwwroot
  2. 在生产环境中,您可能不想从源代码编译,因为启动速度非常慢。您应该发布预编译的二进制文件。您可以将--no-source传递给dnu publish
  3. dnu publish "C:/MyApplication" --out "C:/a/MyApplication" --configuration Release --runtime dnx-clr-win-x86.1.0.0-beta6 --no-source

答案 1 :(得分:1)

问题已过时

根据最新的社区站点(参见Announcement),IIS和asp.net 5之间的HELIOS集成已停止。正在进行MS提供的唯一服务器是红隼。 IIS本身不会识别DNX项目。

您必须通过使用HttpPlatformHandler(IIS8 +)反向代理来启动并将kestrel集成到IIS中。