如何在ASP.NET 5应用程序中禁用源代码发布?

Kon*_*kus 7 asp.net deployment publishing azure-web-sites asp.net-core

以下是发布后部署内容的样子(在Azure网站上):

/approot/packages              - NuGet packages
/approot/src                   - all the source files from the solution
/approot/global.json           - a list of global NuGet packages
/wwwroot/bin/AspNet.Loader.dll - the only .dll file in wwwroot folder
/wwwroot/css                   - front-end code
/wwwroot/lib                   - front-end code
/wwwroot/web.config            - auto-generated
Run Code Online (Sandbox Code Playgroud)

发布期间生成的web.config

我想知道,如何使它只部署编译输出而不是源文件?

Kir*_*lla 9

  • 如果要通过VS 2015发布,请进行以下选择以不部署源文件: 在此输入图像描述

  • 如果您没有使用VS,那么您可以使用kpm pack命令来实现此目的.例如,以下是VS用于创建要部署的程序包的命令(您可以Detailed在工具|选项|项目和解决方案|构建和运行中启用日志记录,以查看此内容)

    "C:\Users\kiranchalla\.kre\packages\kre-clr-x86.1.0.0-beta2-10690\bin\kpm.cmd" pack --runtime KRE-CLR-x86.1.0.0-beta2-10690 --out "C:\Users\kiranchalla\AppData\Local\Temp\AspNetPublish\WebApplication5-91" --wwwroot-out wwwroot --no-source --configuration Release --quiet

一些信息:
上面的效果是现在你的应用程序是预编译的,你应该在packages文件夹下看到一个包kre-app-base,web.config中的标志指向这个包.例:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="kpm-package-path" value="..\approot\packages" />
    <add key="bootstrapper-version" value="1.0.0-beta1" />
    <add key="kre-package-path" value="..\approot\packages" />
    <add key="kre-version" value="1.0.0-beta2-10690" />
    <add key="kre-clr" value="CLR" />
    <add key="kre-app-base" value="..\approot\packages\WebApplication5\1.0.0\root" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)