还有 25 天就要交期末作业了,虽然还有好些功能没完成,但是前端同学还是建议先放到云上跑一跑,于是我轻车熟路的用 VS 2017 搞起了 FTP 发布,然而,发布失败了,错误信息如下:
"DestinationFiles" refers to 1 item(s), and "SourceFiles" refers to 2 item(s).
经过一番 StackOverflow 与 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
可以正常使用了。