.NET CLI如何在Linux上发布后运行应用程序

Tod*_*ams 11 asp.net-core-mvc .net-core .net-core-rc2

我花了大约4个小时调查,仍然无法找到如何运行已发布的应用程序(dotnet publish)

现在,我可以下载源到我的远程机器,然后调用dotnet builddotnet run-然后我的应用程序运行的预期.但我想在没有源文件的情况下将DLL(或*.so?)发布到我的VPS.

官方文档说什么?在project.json中定义命令

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://unix:/var/aspnet/HelloMVC/kestrel.sock",
}
Run Code Online (Sandbox Code Playgroud)

但它是obsolette,不是吗?

那么默认样品呢?

在默认的VS2015示例解决方案中,他们使用的是publish-iis,完整的.NET框架和IIS服务器,但是没有关于Linux上的部署.

postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
Run Code Online (Sandbox Code Playgroud)

这是我的dotnet信息

.NET Command Line Tools (1.0.0-preview1-002702)

Product Information:
 Version:     1.0.0-preview1-002702
 Commit Sha:  6cde21225e

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.10586
 OS Platform: Windows
 RID:         win10-x64
Run Code Online (Sandbox Code Playgroud)

.NET Core RC2

Tho*_*mas 11

执行以下步骤(从RC2便携式应用程序开始;正常的应用程序):

  1. 从所有依赖项中删除"type":"platform"注释(因此它实际上是独立的,不再依赖于已安装的.NET Core平台).
  2. 将节点运行时添加到project.json(因此NuGet能够将必要的平台部件拉到本地计算机)

    样品:

    "runtimes": {
      "osx.10.11-x64": { },
      "win10-x64": { },
      "ubuntu.14.04-x64": { }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. dotnet restore (以确保新的运行时在本地可用).

  4. dotnet build (如果还没有为便携式应用程序完成)
  5. dotnet publish -r ubuntu.14.04-x64 (捆绑起来)
  6. 使用能够运行应用程序的特定于平台的dotnet命令查看结果目录.

我按照.NET Core文档中的步骤进行操作.

  • 在.NET .Core Final中,要运行"已发布"的DLL,您需要使用`dotnet mydll.dll`运行它而不使用`run`关键字,请参阅官方文档中的信息 - https://docs.microsoft.com/en-us/ DOTNET /用品/核心/工具/ DOTNET运行 (10认同)