我有一个在 asp.net 4.5 中开发的应用程序,我想将它移动到 asp.net core 并在 linux 服务器 (ubuntu) 上运行。
我遇到了很多挑战,不幸的是,当前的文档没有帮助。
所以...
我应该如何打包应用程序?
技术文档建议使用以下命令构建
dnu publish --runtime dnx-coreclr-linux-x64.1.0.0-rc1-update1
但是我在我的本地机器上试过了,它没有部署 linux 版本的选项。当我在服务器上运行时,出现了一些问题(稍后介绍)。那么我应该在服务器上执行此操作还是在本地计算机上工作。
注意:我在另一个堆栈溢出问题中读到,只要它的 coreclr 无论是 win 还是 linux 都没有关系?
我想在回答这个问题之后会出现更多问题。我在 Core 方面遇到了很多问题,我想知道是否有人真的设法将应用程序部署到 Linux 环境!
如有任何帮助,我们将不胜感激!
更新
为了提供更多信息,当前在本地机器上的运行时间是...
Active Version Runtime Architecture Location Alias
------ ------ ------ -------------- ------ -----
1.0.0-beta5 clr x64 C:\Users\Alex.dnx\runtimes
1.0.0-beta5 clr x86 C:\Users\Alex.dnx\runtimes
1.0.0-beta5 coreclr x64 C:\Users\Alex.dnx\runtimes
1.0.0-beta5 coreclr x86 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 clr x64 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 clr x86 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 coreclr x64 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 coreclr x86 C:\Users\Alex.dnx\runtimes
* 1.0.0-rc1-update2 clr x86 C:\Users\Alex.dnx\runtimes 默认
1.0.0-rc1-update2 coreclr x86 C:\Users\Alex.dnx\runtimes
我想将它编译为 coreclr linux....但是当我运行上面的 dnu publish 命令时它说运行时不存在即使我从 nuget 更新 coreclr?
我在构建它时是否需要指定一个操作系统(Linux 或 Windows),或者一个已发布的应用程序是否可以在其 coreclr 上运行?
这在导入到 Azure 时运行良好,但在部署到 linux 时不起作用
最佳答案
好的,下面是方法:
安装 Visual Studio 2017(使用 .NET Core)
创建您的项目,并让它在 Windows 上编译
编译并运行后,确保您可以从 Visual Studio 发布它
一旦您可以从 Visual Studio 发布它,关闭 Visual Studio 并执行以下操作
打开 cmd.exe(Windows 键 + R)
cd "你的 .sln 文件的目录"
dotnet restore -r ubuntu.16.04-x64
dotnet build -r ubuntu.16.04-x64
dotnet publish -f netcoreapp1.1 -c Release -r ubuntu.16.04-x64您的应用程序现在应该在文件夹 bin/publish 中
如果你想在 Linux 上开发,运行
apt-get install dotnet-dev-1.0.1
并且 dotnet-utility 应该在 Linux 上运行。
注意如果你得到
C:\Program Files\dotnet\sdk\1.0.0\Microsoft.Common.CurrentVersion.targets(2865,5): error MSB3554: Cannot write to the output file "C:\path\to\your\project\obj\Debug\netcoreapp1.1\YOUR_APP.Properties.Resources.resources". Positive number required.
Build FAILED.
当您运行构建或发布命令时,只需再次运行该命令即可。
关于asp.net - 将 .net Core Web 应用程序部署到 ubuntu linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36865207/