我有一个我在asp.net 4.5中开发的应用程序,我想将它移动到asp.net核心并在linux服务器(ubuntu)上运行。
我一直有很多挑战,不幸的是,目前的文档没有帮助。
所以...
我应该如何打包应用程序?
技术文档建议使用以下命令构建
dnu发布--runtime dnx-coreclr-linux-x64.1.0.0-rc1-update1
但是我在我的本地计算机上尝试了这个,并且它没有选择部署linux版本。当我在服务器上运行时,它会出现一些问题(稍后介绍)。我应该在服务器上执行此操作还是在本地计算机上工作。
注意:我读到了另一个堆栈溢出问题,只要它的coreclr无论是win还是linux都不重要?
我想在得到回答之后会出现更多问题。我对Core I有很多问题并且想知道是否有人真的想在app上部署到Linux环境中!
非常感谢任何帮助!
更新
提供更多信息本地机器上的当前运行时间是......
活动版本运行时架构位置别名
------ ------- ------- ------------ -------- -----
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时不起作用
答案 0 :(得分:2)
好的,这是如何:
从Visual Studio发布后,关闭Visual Studio并执行以下操作
打开cmd.exe(Windows-Key + 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:\程序 文件\ DOTNET \ SDK \ 1.0.0 \ Microsoft.Common.CurrentVersion.targets(2865,5): 错误MSB3554:无法写入输出文件“C:\ path \ to \ your \ project \ obj \ Debug \ netcoreapp1.1 \ YOUR_APP.Properties.Resources.resources”。 需要正数。
构建失败。
运行build或publish命令时,只需再次运行该命令。