Dotnet Core从Mac发布到IIS

时间:2017-01-10 18:03:28

标签: asp.net macos iis docker .net-core

我想从mac发布我的dotnet核心应用程序到IIS。我使用 VS代码进行代码编写,使用 Dotnet Core 1.1 进行发布到本地目录。 (例如: bin / release / publish )。有编译我的文件,准备复制到IIS。在我的IIS上,我目前已经安装了 web deploy 3.6 ,这是我的VPS机器。有优雅的方式,如何复制文件?另一种方法是使用 docker ,但在这种情况下我遇到了同样的问题。使用 docker publisher工具生成的docker文件,我需要从 mac os 进行复制。

感谢您的时间。

2 个答案:

答案 0 :(得分:8)

从终端窗口导航到.csproj文件所在的文件夹。从那里运行'dotnet publish -c release'。将在bin / Release / netcoreappX.X中创建名为publish的文件夹。您可以将这些文件复制到服务器上的相应目录中。如果您在设置IIS时需要帮助,请点击以下链接。

https://docs.microsoft.com/en-us/aspnet/core/publishing/iis

您还可以运行'dotnet publish -h'来查看可以传递给publish命令的所有不同参数。

答案 1 :(得分:1)

Web Deploy(msdeploy.exe)似乎在Mono中有效,至少在WSL(Ubuntu 18.04)中有效。棘手的部分是以某种方式提取msi软件包,您可以在Windows机器上轻松地完成该软件包(您可以在 C:\ Program Files \ IIS \ Microsoft Web Deploy V3 中找到文件)。 / p>

安装Mono并获取msdeploy.exe后,只需调用命令即可,例如

mono msdeploy.exe -verb:sync -source:contentPath=/mnt/c/Data -dest:contentPath=test,ComputerName=https://example.com:8172/msdeploy.axd,UserName=WDeployAdmin,Password=PASSWORD,IncludeAcls=False,AuthType=Basic -enableRule:AppOffline -enableRule:DoNotDeleteRule -verbose -allowUntrusted:true

这使您可以在启用了Web部署的example.com上与IIS中 test 网站上的 / mnt / c / Data 内容进行同步/复制。