ASP.NET 5: 发布时我的输出 DLL 在哪里?
ASP.NET 5: Where are my output DLLs when publishing?
发布 ASP.NET 5 网络应用程序时我的输出 DLL 在哪里?
当 运行 MSBuild 的 FileSystemPublish
时,发布目录如下所示:
- 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"
从日志输出我可以看到 dnu publish
被调用:
dnu publish "C:/MyApplication" --out "C:/a/MyApplication" --configuration Release --runtime dnx-clr-win-x86.1.0.0-beta6 --quiet
如果我查看内部 web.cmd
我可以看到 DNX 确实是 运行 来自源代码的应用程序:
@"%~dp0approot\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnx.exe" --appbase "%~dp0approot\src\MyApplication" Microsoft.Framework.ApplicationHost web %*
我能够成功地将 IIS 指向 wwwroot 目录。
IIS 如何知道调用 web.cmd
?这是在生产环境中提供 ASP.NET 5 应用程序的正确方法吗?
- IIS 不调用
web.cmd
。 IIS 知道如何从 wwwroot
文件夹加载 AspNet.Loader
。
- 在生产环境中,您可能不想从源代码编译,因为启动速度非常慢。您应该发布预编译的二进制文件。您可以通过将
--no-source
传递给 dnu publish
:
dnu publish "C:/MyApplication" --out "C:/a/MyApplication" --configuration Release --runtime dnx-clr-win-x86.1.0.0-beta6 --no-source
问题已过时
根据最新的社区站会(请参阅 Announcement),IIS 和 asp.net 5 之间的 HELIOS 集成已停止。正在进行的 MS 提供的唯一服务器是 kestrel。 IIS 本身不会识别 DNX 项目。
您必须通过使用 HttpPlatformHandler (IIS8+) 进行反向代理来启动 kestrel 并将其集成到 IIS 中。
发布 ASP.NET 5 网络应用程序时我的输出 DLL 在哪里?
当 运行 MSBuild 的 FileSystemPublish
时,发布目录如下所示:
- 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"
从日志输出我可以看到 dnu publish
被调用:
dnu publish "C:/MyApplication" --out "C:/a/MyApplication" --configuration Release --runtime dnx-clr-win-x86.1.0.0-beta6 --quiet
如果我查看内部 web.cmd
我可以看到 DNX 确实是 运行 来自源代码的应用程序:
@"%~dp0approot\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnx.exe" --appbase "%~dp0approot\src\MyApplication" Microsoft.Framework.ApplicationHost web %*
我能够成功地将 IIS 指向 wwwroot 目录。
IIS 如何知道调用 web.cmd
?这是在生产环境中提供 ASP.NET 5 应用程序的正确方法吗?
- IIS 不调用
web.cmd
。 IIS 知道如何从wwwroot
文件夹加载AspNet.Loader
。 - 在生产环境中,您可能不想从源代码编译,因为启动速度非常慢。您应该发布预编译的二进制文件。您可以通过将
--no-source
传递给dnu publish
:
dnu publish "C:/MyApplication" --out "C:/a/MyApplication" --configuration Release --runtime dnx-clr-win-x86.1.0.0-beta6 --no-source
问题已过时
根据最新的社区站会(请参阅 Announcement),IIS 和 asp.net 5 之间的 HELIOS 集成已停止。正在进行的 MS 提供的唯一服务器是 kestrel。 IIS 本身不会识别 DNX 项目。
您必须通过使用 HttpPlatformHandler (IIS8+) 进行反向代理来启动 kestrel 并将其集成到 IIS 中。