如何用 C# 编写 NEO 智能合约
chespher
发表于 2022-12-2 02:20:05
49
0
0
VisualStudio20173 }. \( M& p5 i A
VisualStudio下载地址,安装或者更新到最新版" m: e: `0 B! Y3 p' Q+ m3 ^; d! [1 K
安装过程很简单,直接按照提示一步一步操作即可,需要注意的是在安装时需要勾选.NETCore跨平台开发,安装大概需要十几分钟或几十分钟:, `. g+ B8 u4 W5 }7 b' N+ P. a
; G0 H6 z" R' i) L
VisualStudio2017安装(勾选.NETCore跨平台开发)$ Z* O9 p* ~, ?$ _* E6 q( y
& M0 E& X! J% B* N
VisualStudio安装成功$ t4 W. I8 ]' ? j! Y( Q
安装NeoContractPlugin插件
" B5 E8 f: m* r& c& j3 t1 Q# x
打开VisualStudio2017,打开工具,扩展和更新,在左侧点击联机,搜索Neo,安装NeoContractPlugin插件(该过程需要联网):
工具->扩展和更新
/ w7 W, C7 z1 M
联机->搜索“Neo”->下载“NeoContractPlugin”- y' i. s! Z. ]- Q% P
/ |7 z2 x/ K. c; p6 L) e' M6 i; u
下载好后,关闭窗口,并关闭VisualStudio,在弹出的窗口上选择“修改”:
关闭VisualStudio->选择“修改” ~* E: B7 l2 g/ g# @. ?+ \7 l3 w
关闭窗口9 Y/ y. ^# l4 `, T& g3 D
, n+ V" u/ s; n- Q1 D
neo-compiler; A% V; N' h/ @2 \5 _$ [
! P7 z& P( M' X/ s+ ?1 W
在Github上下载neo-compiler项目,用VisualStudio2017打开该解决方案,发布其中的neon项目:/ O* M' i* d' R' P, i+ H( `
, V6 B5 [: P; s! _: A
文件->打开->项目/解决方案2 ~$ \4 O |2 m+ ^9 a: G
5 e4 b8 m4 H2 I1 o3 L
选择刚刚下载的neo-compiler项目
: w! ^2 U4 i; \
打开后的界面(右侧)
7 I( h. w( w5 f" c5 ]3 X& T
选中neon+ \/ O; Z& X. V* a; {& h
右键->发布
Configuration和TargetRuntime两个参数根据自己的需要修改并保存! ^( t7 [' _1 T
neon项目默认的发布平台为win10-x64,如果你不是Windows10系统,需要修改发布平台,用文本编译器打开neon.csproj文件,将win10-x64更改为目标平台,如win7-64,然后用VS重新发布该项目即可。详细RID可以参考.NETCoreRuntimeIDentifier(RID)catalog! l, k( \3 N" o8 w4 i& t+ ]% x" w8 ?" y8 {
- I: A" L( k$ i: i) C+ `' I2 g J$ M/ R% h
点击发布
6 n/ X! ~8 C& g* \" V! t, E0 p+ b' G
发布成功. W" h/ F/ C- ~6 `9 H: P: f
! P3 M# U) b5 K3 f3 R
【注】在发布过程中遇到的问题:
发布失败; z5 R9 F0 c2 z, g- ^
tmp966A.tmp
咨询NEO的开发人员,说是vs2017和dotnetcore这块有点问题,建议我使用命令行发布:
+ I% e' `" o! P0 J9 w# y" H
进入neon目录3 X0 C% D+ g" c( p* K6 [) V
运行命令:dotnetpublish-rwin10-x64-cdebug
r参数c参数可以根据你的喜好填写# q7 G7 |5 i7 q5 f
, e5 ?" ^3 ^% t" k
运行命令dotnetpublish-rwin10-x64-cdebug
" Q8 Y D/ @0 D2 H6 h- b' k
验证是否成功,到该目录下查看是否有exe文件,有的话就说明成功了:
C:\Users\Allen\Downloads\neo-compiler-master\neo-compiler-master\neon\bin\Release\netcoreapp1.0\win10-x64\publish\
存在neon应用程序文件
/ f: M0 [6 j4 E+ M- A" G0 _
命令运行成功后,重新点击一下“发布”按钮即可。
修改环境变量
' j& F6 X9 J) Q, \& @- d
发布成功后,会在bin\Release\PublishOutput目录下生成neon.exe文件:
bin\Release\PublishOutput
然后需要添加path,让任何位置都能访问这个exe程序:
7 }4 A, i( `5 G4 f! {6 I- y
打开文件资源管理器->此电脑->属性:
计算机->属性
点击“高级系统设置”,选择“环境变量”:5 f! o+ W" c, K7 @7 a/ }$ u
高级系统设置->环境变量 `6 q$ p y7 w& z. v- A% `9 I
2 z4 ^; Q1 f% v3 F
环境变量界面5 L# |3 R; M4 f! C/ [
选中系统变量中的Path,点击“编辑”:
* I1 w& B9 b P/ }2 ~/ w- {- E7 \
Path->编辑# d- ]/ U6 t2 q3 C% `6 r) F
3 A( }) s* W$ q/ ~
新建* s g" Q% N; ^% Y- h5 x: i: j! i* I
拷贝该路径4 e% ]( K2 t, K' B
粘贴并确定
! Y$ l3 _, J; R# X* p. V0 @& _& H
再次确定
! F) V1 K. p- C& x; W7 i+ ~8 e
添加完path后,运行CMD或者PowerShell测试一下(如果添加path前就已经启动了CMD则要关掉重启),输入neon后,没有报错,输出如图所示的版本号的提示信息即表示环境变量配置成功:& ~8 K& p, m2 r! |- o
9 i4 L% I$ G4 W* [! K. m Q# S v& h
验证环境变量是否配置成功" J+ @: y( Q! g4 e! \0 U6 n
3 B" y& p! C) e, O, A# R- s
创建项目
1 {4 M4 [2 X& _1 B4 M5 S5 ^: \! V
以上四步安装配置成功后,即可在VisualStudio2017中创建NEO智能合约项目(.NETFramework版本任意):- N4 l+ t7 c# a
! L1 Y2 A& A/ r! G8 T5 [
新建->项目5 [( a' W0 x: F) B( s8 T2 W
! v' l% U4 @# j% r; Q
创建NEO智能合约项目
. m2 P" k7 f2 c% Z" |) S
创建项目好后,会自动生成一个c#文件,默认的类继承于SmartContract:# \$ O8 h1 Q) M. d% O
( e/ p0 r4 C- v1 K% X
智能合约c#文件
出现错误:新建的NeoContract项目找不到Neo命名空间
解决方法:
在VS中右键解决方案文件,点击“还原NuGet程序包”,这时在“输出”面板会看到“正在还原NuGet程序包…”。所有程序包已经还原成功后,如果代码仍然报错,并且右侧“引用”中仍有个感叹号,可以尝试双击感叹号:
2 k4 I+ _* H; u% V
还原NuGet程序包6 K& c: Q& b6 a& C+ q
双击“引用”中的感叹号
错误解决- d! I9 A1 E7 [ Z
编译项目
点击菜单栏上的“生成”->“生成解决方案”(快捷键Ctrl+Shift+B)开始编译程序:
+ l1 x n' W7 W; w, a; |
生成解决方案
编译成功$ N1 Q% [9 N8 R" o
编译成功后你会在该项目的bin/Debug目录下看到生成的项目名.avm文件,该文件即是生成的NEO智能合约文件:% m- q) l G7 u! h5 z
4 R. r0 K& Z+ o8 a ], V
智能合约文件(项目名.avm)
成为第一个吐槽的人