如何用 C# 编写 NEO 智能合约
chespher
post on 2022-12-2 02:20:05
46
0
0
VisualStudio2017
VisualStudio下载地址,安装或者更新到最新版
安装过程很简单,直接按照提示一步一步操作即可,需要注意的是在安装时需要勾选.NETCore跨平台开发,安装大概需要十几分钟或几十分钟:
VisualStudio2017安装(勾选.NETCore跨平台开发)
VisualStudio安装成功
安装NeoContractPlugin插件
打开VisualStudio2017,打开工具,扩展和更新,在左侧点击联机,搜索Neo,安装NeoContractPlugin插件(该过程需要联网):
工具->扩展和更新
联机->搜索“Neo”->下载“NeoContractPlugin”
下载好后,关闭窗口,并关闭VisualStudio,在弹出的窗口上选择“修改”:
关闭VisualStudio->选择“修改”
关闭窗口
neo-compiler
在Github上下载neo-compiler项目,用VisualStudio2017打开该解决方案,发布其中的neon项目:
文件->打开->项目/解决方案
选择刚刚下载的neo-compiler项目
打开后的界面(右侧)
选中neon
右键->发布
Configuration和TargetRuntime两个参数根据自己的需要修改并保存
neon项目默认的发布平台为win10-x64,如果你不是Windows10系统,需要修改发布平台,用文本编译器打开neon.csproj文件,将win10-x64更改为目标平台,如win7-64,然后用VS重新发布该项目即可。详细RID可以参考.NETCoreRuntimeIDentifier(RID)catalog
点击发布
发布成功
【注】在发布过程中遇到的问题:
发布失败
tmp966A.tmp
咨询NEO的开发人员,说是vs2017和dotnetcore这块有点问题,建议我使用命令行发布:
进入neon目录
运行命令:dotnetpublish-rwin10-x64-cdebug
r参数c参数可以根据你的喜好填写
运行命令dotnetpublish-rwin10-x64-cdebug
验证是否成功,到该目录下查看是否有exe文件,有的话就说明成功了:
C:\Users\Allen\Downloads\neo-compiler-master\neo-compiler-master\neon\bin\Release\netcoreapp1.0\win10-x64\publish\
存在neon应用程序文件
命令运行成功后,重新点击一下“发布”按钮即可。
修改环境变量
发布成功后,会在bin\Release\PublishOutput目录下生成neon.exe文件:
bin\Release\PublishOutput
然后需要添加path,让任何位置都能访问这个exe程序:
打开文件资源管理器->此电脑->属性:
计算机->属性
点击“高级系统设置”,选择“环境变量”:
高级系统设置->环境变量
环境变量界面
选中系统变量中的Path,点击“编辑”:
Path->编辑
新建
拷贝该路径
粘贴并确定
再次确定
添加完path后,运行CMD或者PowerShell测试一下(如果添加path前就已经启动了CMD则要关掉重启),输入neon后,没有报错,输出如图所示的版本号的提示信息即表示环境变量配置成功:
验证环境变量是否配置成功
创建项目
以上四步安装配置成功后,即可在VisualStudio2017中创建NEO智能合约项目(.NETFramework版本任意):
新建->项目
创建NEO智能合约项目
创建项目好后,会自动生成一个c#文件,默认的类继承于SmartContract:
智能合约c#文件
出现错误:新建的NeoContract项目找不到Neo命名空间
解决方法:
在VS中右键解决方案文件,点击“还原NuGet程序包”,这时在“输出”面板会看到“正在还原NuGet程序包…”。所有程序包已经还原成功后,如果代码仍然报错,并且右侧“引用”中仍有个感叹号,可以尝试双击感叹号:
还原NuGet程序包
双击“引用”中的感叹号
错误解决
编译项目
点击菜单栏上的“生成”->“生成解决方案”(快捷键Ctrl+Shift+B)开始编译程序:
生成解决方案
编译成功
编译成功后你会在该项目的bin/Debug目录下看到生成的项目名.avm文件,该文件即是生成的NEO智能合约文件:
智能合约文件(项目名.avm)
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
Write the first review