首页 > 编程知识 正文

三菱扩展模块怎么定义输入点,dhcmov指令用法

时间:2023-05-03 14:54:38 阅读:35234 作者:1509

ASP.NET % 205 % 20 % E5 % BC % 95 % E5 % a5 % E4 % ba % 86 % E4 % b8 % b8 % aa % E6 % B0 % E5 % b8 % 8b8% 205 % ef % BC % 8c % E8 % 80c % E4 % b8 % E4 % be9d % E8 % b5 % 96 % E4 % ba % 8e5% ae5 % BF % E4 % b8 % bb % E6 % 20 % 96 % 81 dnu % ef % BC % 89 % E7 % 94 % A8 % E4 % ba % 8e7% AE % 86 % E6 % 88 % 91 % E4 % bb % AC % E7 % 97 % 25 % 20 % E5 25 % 20e9% 9c % 80 % E8 % a6 % 81 % E4 % b8 % E4 % b8 % aa % E6 % E6 % AC % E7 % BC % 96 % E8 % be9 % E5 % 91 % 25 20 % 208 dnvm % 29 % 20 % E4 % B9 % 8b % e9 % 97 % B4 % 20 % ef % BC.net % 20 % E6 % 89 % a7 % E8 % a1 % 87 % E7 % af % % 82 % E5 % 9c % A8 % E8 % BF % 99 % E7 % af % 87 % E6 % 87 % ab % A0 % E6 % 88 % E4 % bb % AC % E5 % B0 % 86 % 20 % A8 % 0 % E5 % 8f % 91 % E4 % b8 % 80 % E4 % b8 % aa % E7 % ae8 % 8d % 95 % E5 % ba % 94 % E7 % A8 % E7 % A8 % 8b % E5 % 225 % 98 % af % 25 % 20 rsion % 20 manager % ef % BC % 89 % ef % BC % 9a % E7 % 94 % B1 % E4 % ba % 8e8% a6 % 81 % E5 % AE % 9e7% % BD % ef % BC %8cdn VM % E6 % 98 % afaaf % 205 % AE % 83 % E6 % 98 % af % E4 % b8 % 80 % E7 % bb % 84 powershell % E8 % 84 % E4 3 % ef % BC % E5 % B9 % B6 % E4 % b8 % E5 % 8f % 25 % 204 % E5 % 90 % 8c % E4 % b8 % 80 % E6 % 97 % B6 % e9 % 97 % B4 % E7 % 87。 0 % E8 % a1 % 8c % E7 % 8e % af % E5 % a2 % 83 % 25 % 20b8% E5 % ba % 94 % E7 % 84 % E5 % 8d % 87 % E7 % ba % a7 % E6 % E7 % 9a % 84 % E8 % BF % 90 % E8 % a1 % 8c % E7 % 8e8% af % E5 % a2 % 20 % 8c ASP.NET % E7 % A8 % 8b % E5 % ba % 8f % E3 % 80 % e9 % E6 % E3 % 80 % 25朴素% 20cl r % E5 % AE % BF % E4 % b8 % bb % E7 % 85 % af % 20 % 90 % 86 % E5 % 90 % 84 % E7 % a7 % 7 % 94 % A8 % E7 % 9a % 84 dnx % E7 % 8e % af % E5 % a2 % 83 % ef % BC % 8c % E8 % 80 %8cdn VM % 20a % E7 % 89 % E6 % mes % E7 % 9b % AE % E5 % BD % 95 % E4 % b8 % E6 % 89 % be5 % 88 % B0 % E5 % B2 % E5 % ae5 % 20b8% 8d % E5 % 90 % 8c % ee exe % E6 % 98 % af % E7 % 94 % A8 % E4 % ba % 8e5% 90 % af % E5 % 8a8% 87 % aa % E5 % BF % 25 % 20bd % E4 % bb % a4 % ee 4 f % E5 % a2 % 83 % E5 % 90 % af % E5 % 8a8% E7 % 8b % E5 % ba % E6 % B6 % 25 % 20cl r % 20朴素% 20主机% ef % BC %8cdd

DNVM:程序所在的程序集或包含Programe:Main的dll存储在--lib路径中的程序名称。 默认值为appbaseproject.json的名称。 在大多数情况下,此名称是包含加载链的程序主机(Microsoft.Net.ApplicationHost )。 但是,如果您的程序包含入口点(主方法)并将其编译到--lib目录中,则可以将该程序集的名称用作[程序名称]。 这完全无视加载链,直接启动程序。

DNX

此层的内容取决于您选择的CLR版本。 这一层有以下两个责任:

启动CL

R,启动哪个CLR取决于你选择的CLR版本。如果是Core CLR,该层会加载coreclr.dll,配置并启动运行环境,然后创建应用程序域(AppDomain),以便运行所有的托管代码。调用托管代码的入口点(Layer 2),一旦Native Host的入口点返回了该线程,就会把CLR的线程清理干净并关闭,比如,卸载应用程序域(AppDomain)并停止运行环境。

Layer 2:Managed Entry Point 

Layer 2层(托管代码入口)是编写托管代码的第一层,其职责如下:

创建LoaderContainer(其包含需要的ILoaders),ILoader负责根据程序集的名称来加载程序集。CLR需要一个程序集的话,LoaderContainer就会使用其ILoader来解析所需要的程序集。从--lib的路径目录下,用根ILoader来加载程序集,并解析其依赖。调用程序的主入口点。

Layer 3:Application host/Application 

如果开发人员将整个程序编译成程序集放在libpath目录下,那该层就是你的应用程序了。使用的时候,将含有程序入口点的程序集名称作为[ProgramName]的参数传入即可,Layer 2层会直接调用该程序集。

不过,一般其它情况下,都会使用一个应用程序宿主(Application host)来解析程序的依赖内容并启动运行程序。Microsoft.Net.ApplicationHost是运行环境提供的应用程序宿主,并拥有如下职责:

解析project.json里定义的各种依赖程序集。将一个ILoader添加到LoaderContainer,以便从各种地方(如源代码、NuGet、Roslyn等)加载相应的程序集。调用程序集的入口点,将其作为下一个参数,传递给DNX.exe。

Layer 4:Application 

这一层,就是开发人员开发的程序,其运行在应用程序宿主之上。

环境配置:

要对ASP.NET 5程序的运行环境DNX进行配置,首先需要安装并配置DNVM,CentOS等Linux系统上需要先安装Mono,可以参照文章CentOS 7 上部署Mono 4 和Jexus 5.6。然后运行下面命令

curl -sSL https://raw.githubusercontent.com/aspnet/Home/master/dnvminstall.sh | sh && source~/.dnx/dnvm/dnvm.sh 

 

[root@Mono ~]# curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh 

Downloading dnvm as script to '/root/.dnx/dnvm' 

Appending source string to /root/.bash_profile 

Type 'source /root/.dnx/dnvm/dnvm.sh' to start using dnvm 

运行命令dnvm:

上述DNVM安装以后,系统会将dnvm文件复制到/root/.dnvm目录,并将/root/.dnvm目录添加到环境变量中,以便全局都可以使用。注意:这里只是安装了DNVM,并没有安装任何版本的DNX,要安装DNX的话,可以通过运行dnvm或dnvm help来查找相关的命令,具体命令如下:

dnvm upgrade [-x86][-x64] [-svr50][-svrc50] [-g|-global] [-proxy <ADDRESS>]

从feed源安装最新版的DNX 为已安装的DNX设置一个默认(default)别名将DNX 幸福的电脑添加的用户PATH环境变量中-g|-global 在全局内进行安装(其它用户也可以使用)-f|-force 强制更新成最新版(即便最新版已经安装过了)-proxy 访问远程服务器的时候使用特定的地址作为代理

dnvm install <semver>|<alias>|<nupkg>|latest [-x86][-x64] [-svr50][-svrc50] [-a|-alias <alias>] [-g|-global] [-f|-force]

| 从feed源安装指定的DNX 从本地文件系统安装指定的DNX latest 从feed源安装最新版的DNX 将DNX 幸福的电脑添加到当前命令行的path环境变量中-p|-persistent 将DNX 幸福的电脑添加到系统PATH环境变量中-a|-alias 对指定安装的DNX设置别名-g|-global 在全局内进行安装-f|-force 强制安装指定的DNX(即便该版本已经安装过了)

dnvm use <semver>|<alias>|none [-x86][-x64] [-svr50][-svrc50] [-p|-persistent] [-g|-global]

| 将DNX 幸福的电脑添加到当前命令行的path环境变量中none 将DNX 幸福的电脑从当前命令行的path环境变量中删除-p|-persistent 将DNX 幸福的电脑添加到系统PATH环境变量中-g|-global 组合使用-p将用户PATH修改成系统PATH 

dnvm list //列出所有已安装的DNX版本

dnvm alias //列出所有定义了别名的DNX版本

dnvm alias <alias> // 显示定义了别名的DNX名称

dnvm alias <alias> <semver> [-x86][-x64] [-svr50][-svrc50] //给指定的DNX版本设置别名

管理程序集的dnu命令和feed源配置

通过dnu命令进行包管理的时候,通常使用如下命令:

dnu restore:查询程序的所有依赖包,并将其全部下载到packages目录,该命令会下载整个依赖包以及这些依赖包所依赖的其它依赖包。
dnu install <package id>:该install命令用于下载指定的程序包并添加到程序中。
dnu publish:该命令会将你的程序打包到一个可以运行的自包含目录中。其会创建如下目录结构:

output/

output/packages

outpot/appName

output/commandName.cmd

packages目录包含所有应用程序需要的程序包。

appName目录包含所有应用程序的代码,如果引用了其它项目,则在引用的其它项目也会创建各自项目的同级目录,即生成的目录会和AppName同级。

publish命令,会将project.json中的commands节点中的各种命令,分别生成响应的命令行文件,如commands里的web命令,我们就可以通过dnx web(格式:dnx <command>)开运行它。

由于dnu在内部使用了Nuget命令,进行程序包的管理,所以使用的时候要正确配置Nuget的feed源,目前ASP.NET 5相关的包都在myget feed上,所以我们需要添加这个feed才能正常运行。这些配置信息在*nix下Mono使用的~/.config/NuGet/NuGet.config文件中进行管理,示例如下:

从命令行开始构建一个控制台程序

我们使用vim 和dnx/dnu命令行构建一个简单的程序,创建一个目录dnx_demo, 在目录下创建一个project.json 文件,包含下面内容:

{

"version": "1.0.0-*",

"description": "geffzhang demo project",

"commands": {

"runme": "dnx_demo"

},

"frameworks": {

"dnx451": { },

"dnxcore50": {

"dependencies": {

"System.Console": "4.0.0-beta-22816",

"Microsoft.CSharp": "4.0.0-beta-22816"

}

}

}

}

上面我们定义了一个命令"runme",它指向的是工程名称:dnx_demo。我们可以通过命令行使用dnx运行我们的项目,我们的项目指向传统的.NET Framework (dnx451) 和 .NET Core (dnxcore50),所以我们可以用dnx和.net fx运行。

然后在创建一个Program.cs文件,内容如下:

using System;

namespace dnx_demo

{

public class Program

{

public void Main(string[] args)

{

Console.WriteLine("No Visual Studio Here!!");

Console.Read();

}

}

}

保存后,我们先运行命令dnu restore,将我们依赖的程序包下载到package目录。

目前我们运行的程序还仅仅是一个非常简单的控制台程序,还没有包括EF, SignalR, Identity等复杂组件,但从整个部署过程中,我们可以感觉到其实差距已经很小. 首先运行和部署环境DNVM和dnu, dnx命令和VS 2015的环境是一致的,而且组件包都是从Nuget上获取,这和标准的Windows开发环境并没有太大区别。

参考内容:

解读ASP.NET 5 & MVC6系列(4):核心技术与环境配置

https://github.com/aspnet/Home/wiki/DNX-structure

https://github.com/aspnet/Home/wiki/Command-Line

https://github.com/aspnet/Home/wiki/Version-Manager

https://github.com/aspnet/Home/wiki/Package-Manager

在Linux和Mac OS X系统上运行.NET

http://www.codeproject.com/Articles/1005145/DNVM-DNX-and-DNU-Understanding-the-ASP-NET-Runtime

 

转载于:https://www.cnblogs.com/chenweixuan/p/5168668.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。