问题
I spent ~4 hours investigation and still can't find out how to run published application ( dotnet publish
)
Now I can download sources to my remote machine, then call dotnet build
and dotnet run
- then my app runs as intended. But I want to publish just DLL's (or *.so ?) to my VPS without source files.
What official docs says? To define command in project.json
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --server.urls http://unix:/var/aspnet/HelloMVC/kestrel.sock",
}
But it is obsolette, isn't it?
What about default samples?
In default VS2015 sample solution they use publish-iis, Full .NET framework and IIS server, but there is nothing about deployment on linux.
postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
Here is my dotnet info
.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
.NET Core RC2
回答1:
Do the following steps (starting from a RC2 portable application; the normal one):
- Remove the "type": "platform" annotation from all your dependencies (so it is actuall self-contained and no longer rely on a installed .NET Core platform).
Add a node runtimes to your project.json (so NuGet is able to pull the necessary platform parts to your local machine)
Sample:
"runtimes": { "osx.10.11-x64": { }, "win10-x64": { }, "ubuntu.14.04-x64": { } }
dotnet restore
(to make sure the new runtimes are locally available).dotnet build
(if not already done for the portable app)dotnet publish -r ubuntu.14.04-x64
(to bundle it up)- See the result directory with a platform specific dotnet command able to run the app.
I followed the steps found in the .NET Core documentation.
来源:https://stackoverflow.com/questions/37376880/net-cli-how-to-run-app-after-publish-on-linux