Asp.Net Core 项目从 1.0.1 升级到 1.1.0 的小补丁

还有 25 天就要交期末作业了,虽然还有好些功能没完成,但是前端同学还是建议先放到云上跑一跑,于是我轻车熟路的用 VS 2017 搞起了 FTP 发布,然而,发布失败了,错误信息如下:

"DestinationFiles" refers to 1 item(s), and "SourceFiles" refers to 2 item(s).

经过一番 * 与 Github issue 之后,终于在 VS 2017 的 Known Issue 中发现这个问题的 Workround ——None Avaliable!!!没有解决方案!!!

我强忍着心中的羊驼继续搜寻这个问题的解决方案,毕竟这是期末作业,不能随随便便就放弃这么多的学分,既然直接用 VS 发布行不通,那么我就用 Cli 吧!dotnet publish!好吧依旧失败,同样的错误。

给微软一个大写的服,说好的 Current 还是有这么多的 bug,然而我还是不死心,直奔 dotnet-cli 的 Github 终于找到了下面的解决方案:

  • 去掉 csproj 中默认的 Content Include,如下,因为新的工具已经默认钦定了这些东西:

    <Content Include="wwwroot\**\*;**\*.cshtml;appsettings.json;web.config;">
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
  • 更新 Microsoft.NET.Sdk.Web 到最新的预览版

<PackageReference Include="Microsoft.NET.Sdk.Web">
<Version>1.0.0-alpha-20161104-2-112</Version>
<PrivateAssets>All</PrivateAssets>
</PackageReference>
  • 删除 包含 iis-publish 的 Target ,新的工具已经集成了这个 IIS 发布工具,可以自动生成直接使用的 Web.config 了

上面三点做完之后, dotnet publish 可以正常使用了。

上一篇:第二章 NIO入门


下一篇:Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。