Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在RedHat Enterprise Linux 7.3上开发ASP.NET Core 1.1_Asp.net Core_.net Core_Redhat - Fatal编程技术网

Asp.net core 在RedHat Enterprise Linux 7.3上开发ASP.NET Core 1.1

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

我有一个是在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  
1.0.3  
  • 在VMware Workstation中创建RHEL 7.3虚拟机
  • 遵循以下步骤在VM中安装dotnet core 1.1
  • 然后,我在Windows10上运行以下命令来创建一个自包含的部署

    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之间兼容

    ;)下载链接肯定是最新的,底部还有一个下载脚本。如果您使用Visual Studio 2017创建项目,它将使用csproj而不是project.json创建项目。“dotnet--version”用于.NET命令行界面(CLI),而不是您的运行时或sdk版本。CLI版本是sdk版本。@Tseng不幸的是,
    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而中断命令行。“他们的文件导致了幻觉……”你能给我指一下这个文件吗?