Asp.net core 在RedHat Enterprise Linux 7.3上开发ASP.NET Core 1.1
我有一个是在Windows 10上使用Visual Studio 2017创建的。通过运行以下命令,它可以正常工作Asp.net core 在RedHat Enterprise Linux 7.3上开发ASP.NET Core 1.1,asp.net-core,.net-core,redhat,Asp.net Core,.net Core,Redhat,我有一个是在Windows 10上使用Visual Studio 2017创建的。通过运行以下命令,它可以正常工作 cd src dotnet restore dotnet build cd Hello.Portal dotnet run 有关更多详细信息,请参阅存储库中的build.cmd 我的下一个目标是为RHEL7创建一个build.sh,它最终将得到一个RPM(但这超出了这个问题的范围)。为此,我做了以下准备: S:\hello\src>dotnet --version
cd src
dotnet restore
dotnet build
cd Hello.Portal
dotnet run
有关更多详细信息,请参阅存储库中的build.cmd
我的下一个目标是为RHEL7创建一个build.sh,它最终将得到一个RPM(但这超出了这个问题的范围)。为此,我做了以下准备:
S:\hello\src>dotnet --version
1.0.3
dotnet restore --runtime rhel.7-x64
dotnet publish --framework netcoreapp1.1 --runtime rhel.7-x64
然后我将输出SFTP到VM,应用程序按预期工作
然后,我将GIT存储库克隆到RHEL VM,然后运行以下命令,假设它的工作方式与Windows相同
cd src
dotnet restore
dotnet build
但是,它失败了,出现以下错误:
[werners@localhost src]$ dotnet restore
warn : The folder '/home/werners/development/hello/src' does not contain a project to restore.
[werners@localhost src]$ dotnet build
Couldn't find 'project.json' in current directory
[werners@localhost src]$
这看起来相当可疑。因此,我注销并重新登录,然后运行以下命令:
[werners@localhost ~]$ scl enable rh-dotnetcore11 bash
[werners@localhost ~]$ dotnet --version
1.0.0-preview2-1-003176
在Windows上,该版本返回以下内容:
S:\hello\src>dotnet --version
1.0.3
因此,rh-dotnetcore11似乎没有最新发布的.NETCORE命令行版本
为了验证,我以root用户身份运行了以下命令
[root@localhost ~]# yum install rh-dotnetcore11
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Package rh-dotnetcore11-1.0-1.el7.x86_64 already installed and latest version
Nothing to do
使用Red Hat Enterprise Linux 7.3构建、测试、运行和发布使用Visual Studio 2017创建的ASP.NET核心应用程序时,需要遵循哪些说明
因此,rh-dotnetcore11似乎没有最新发布的.NETCORE命令行版本
没有。.NET Core 1.0的原始版本有一个RC版本的CLI(或者SDK,如果您愿意的话)。这被打包为rh-dotnetcore10(后来更新的版本是rh-dotnetcore11)
由于兼容性要求,RHEL包不能破坏命令行界面和API
1.0 SDK改变了命令行的行为方式和项目格式;因此,它不适合包含在RHEL中,因为它会破坏人们现有的工作流程,需要从project.json迁移到csproj
因此,RHEL包包含最新的API(corefx和/或coreclr),但包含较旧的RC era SDK
使用Red Hat Enterprise Linux 7.3来构建、测试、运行和发布使用Visual Studio 2017创建的ASP.NET核心应用程序,需要遵循哪些说明
不幸的是,目前没有好的前进道路。一些选择包括:
- 使用dotnet的上游安装,Red Hat不支持这一点,因为它不是官方的Red Hat软件包:
- 在Windows上使用SDK的RC版本,在RHEL上使用Visual Studio 2015(2017不支持project.json)和rh-dotnetcore11
- 请稍等2.0(希望很快发布),它应该有新的SDK,因为Red Hat不打算在1.0和2.0之间兼容
dotnet install.sh
在RHEL 7.3下没有进行一些更改就无法安装。一旦这个问题得到解决,1.0.1版就安装了,它支持csproj。奇怪的是,还有一个用于.NET Core1.0的rh-dotnetcore10包。因此,尽管遵循了语义版本控制,.NET核心团队似乎打破了一条基本规则,即当您打破与以前版本的兼容性时,主版本应该更改。@bloudraak SDK不兼容并不意味着运行时兼容性。“红帽在创建这样的软件包时做了一个错误的决定,我认为他们应该受到谴责。”莱克斯利回顾了输出,红帽在发布频道中打包了预览代码。他们的文档让人误以为.NET Core 1.1 SDK与其他平台上的SDK兼容。@LexLi语义版本控制不仅适用于SDK生成的二进制文件。当您破坏工具的“接口”时,版本控制必须反映这一点。因此,我本以为CLI工具集至少会升级到次要版本,因为它在底层项目格式中有了突破性的更改。因此,我认为双方都有过错。@bloudraak“红帽在发布频道中打包了预览代码”。我们在一个受支持的渠道中发布了正式发布的.NETCore1.0(包括作为“预览版”的SDK)。我们承诺兼容性,所以我们不能因为发布了“非预览”SDK而中断命令行。“他们的文件导致了幻觉……”你能给我指一下这个文件吗?