右键BookStore->发布(Publish)->Settings选项卡->File Publish Options->勾选Precompile during publishing复选框。
这样就可以生成响应的dll文件, 但是这些dll文件依然不在wwwroot/bin目录下,而是在approotpackagesBookStore1.0.0目录下,在该目录下有2个文件夹,分别是lib和root,以及相关的Nuget的spec文件,在lib目录下,生成的是不同dnx版本的dll文件,而root则是类似于之前的web根目录,因为在该目录下除了有视图文件以外,还和以前的结构一样,保留了bin目录,并且在bin目录下的Release文件夹下,也有一份针对不同dnx版本的dll文件副本。
提示:上述选择中,另外一个Delete all existing files prior to publish也可以勾选上,以便在发布时将之前发布版本的所有文件全部清空。
此时,我们通过web.cmd文件或者IIS模式来验证发布的文件,经验证,均可以正常运行。再仔细对比两份不同设在的发布文件,发现,除了dll文件以外,web.config文件的应用程序路径也变了,即从原来的:
<add key="kre-app-base" value="..approotsrcBookStore" />
变成了如下版本:
<add key="kre-app-base" value="..approotpackagesBookStore1.0.0root" />
而web.cmd文件的内容,也从如下内容:
@"%~dp0approotpackagesdnx-coreclr-win-x64.1.0.0-beta4bindnx.exe" --appbase "%~dp0approotsrcBookStore" Microsoft.Framework.ApplicationHost web %*
变成了如下内容:
@"%~dp0approotpackageskre-coreclr-win-x64.1.0.0-beta4bindnx.exe" --appbase "%~dp0approotpackagesBookStore1.0.0root" Microsoft.Framework.ApplicationHost web %*
上述变化,我们是可以理解的,即将src源码动态编译运行的模式修改为预编译dll程序集的模式。所以,在这里我们可以看到,在源码动态编译模式下,其发布后的文件夹结构如下:
//源码动态编译模式
wwwroot/bin/Microsoft.AspNet.Loader.IIS.dll
wwwroot/Contents/site.css
wwwroot/Contents/.......................................
........................................................
wwwroot/Scripts/jquery.js
wwwroot/Scripts/........................................
........................................................
........................................................
approot/src/BootStore/project.json
approot/src/BootStore/...............................
approot/src/BootStore.Data/project.json
approot/src/BootStore.Data/..............................
approot/src/BootStore.Bussiness/project.json
approot/src/BootStore.Bussiness/.........................
approot/packages/Elmah/{version}/.......................
........................................................
而dll预编译模式下的发布文件夹结构如下:








