用 C# 编写 NEO 智能合约
工具 -> 扩展和更新安装 NeoContractPlugin 插件
打开 Visual Studio 2017,打开 工具, 扩展和更新 ,在左侧点击 联机 ,搜索 Neo,安装 NeoContractPlugin 插件(该过程需要联网):

工具 -> 扩展和更新

联机 -> 搜索“Neo” -> 下载“ NeoContractPlugin”
- neo-compiler
在 Github 上下载 neo-compiler 项目,用 Visual Studio 2017 打开该解决方案,发布其中的 neon 项目:

neon 项目默认的发布平台为 win10-x64,如果你不是 Windows10 系统,需要修改发布平台,用文本编译器打开 neon.csproj 文件,将 <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers> 更改为目标平台,如 <RuntimeIdentifiers>win7-\</RuntimeIdentifiers>,然后用 VS 重新发布该项目即可。详细 RID 可以参考 .NET Core Runtime IDentifier (RID) catalog

【注】在发布过程中遇到的问题:


咨询NEO的开发人员,说是 vs2017 和 dotnetcore 这块有点问题,建议我使用命令行发布:
进入neon 目录
运行命令: dotnet publish -r win10-x64 -c debug
r参数 c参数可以根据你的喜好填写

运行命令 dotnet publish -r win10-x64 -c debug
验证是否成功,到该目录下查看是否有exe 文件,有的话就说明成功了:

命令运行成功后,重新点击一下“发布”按钮即可。
- 修改环境变量
发布成功后,会在 bin\Release\PublishOutput 目录下生成 neon.exe 文件:

然后需要添加 path,让任何位置都能访问这个 exe 程序:
打开文件资源管理器 -> 此电脑 -> 属性:
然后需要添加 path,让任何位置都能访问这个 exe 程序:
打开文件资源管理器 -> 此电脑 -> 属性:

点击“高级系统设置”,选择“环境变量”:

高级系统设置 -> 环境变量

选中系统变量中的 Path,点击“编辑”:





添加完 path 后,运行 CMD 或者 PowerShell 测试一下(如果添加 path 前就已经启动了 CMD 则要关掉重启),输入 neon 后,没有报错,输出如图所示的版本号的提示信息即表示环境变量配置成功:

创建项目
以上四步安装配置成功后,即可在 Visual Studio 2017 中创建 NEO 智能合约项目(.NET Framework 版本任意):


创建项目好后,会自动生成一个 c# 文件,默认的类继承于 SmartContract:

出现错误:新建的 NeoContract 项目找不到 Neo 命名空间
解决方法:
在 VS 中右键解决方案文件,点击 “还原 NuGet 程序包” ,这时在 “输出” 面板会看到 “正在还原 NuGet 程序包...”。所有程序包已经还原成功后,如果代码仍然报错,并且右侧 “引用” 中仍有个感叹号,可以尝试双击感叹号:


编译项目
点击菜单栏上的“生成” -> “生成解决方案”(快捷键 Ctrl + Shift + B)开始编译程序:


编译成功后你会在该项目的 bin/Debug 目录下看到生成的 项目名.avm 文件,该文件即是生成的 NEO 智能合约文件:

转载自 https://www.jianshu.com/p/d0da4ec13716
用 C# 编写 NEO 智能合约的更多相关文章
- 五一劳动节,讲讲NEO智能合约的调试
之前我们说过NEO智能合约的调试问题,过去了一段时间,有很多东西都发生了比较大的变化.让我们重新再来探讨一下这个话题. 先说日期,2018年4月27日,马上迎来劳动节. 以后可能还会再次谈论这个话 ...
- NEO智能合约开发(二)再续不可能的任务
NEO智能合约开发中,应用合约比较简单,是的你没看错,应用合约比较简单. 应用合约三部曲,发布.调用.看结果.除了看结果工具比较缺乏,发布调用neogui最起码可以支撑你测试. 鉴权合约比较麻 ...
- NEO智能合约开发(一)不可能完成的任务
悬赏任务 兹有如下合约 public static object Main(string method, object[] args) { if (Runtime.Trigger == Trigger ...
- neo智能合约的生命周期
- SAP云平台,区块链,超级账本和智能合约
前一篇文章<Hyperledger Fabric on SAP Cloud Platform>,我的同事Aviva已经给大家介绍了基于区块链技术的超级账本(Hyperledger)的一些概 ...
- 【精解】EOS智能合约演练
EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整的实操演练,过程中深入熟悉掌握整个EOS智能合约的流程,过 ...
- 区块链之智能合约 solidity踩坑 --上篇
概述 最近在写合约时遇到一些坑,做一下总结: 介绍主要分一下三个方面: 对区块链的简单描述 结合业务场景,编写简单智能合约,时遇到的坑(上篇) assembly 的使用说明(下篇) 正文 进入正题之前 ...
- 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约
智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...
- NEO从入门到开窗(2) - 智能合约的面相
一.啰嗦两句 昨天讲了智能合约的一生,那丫长啥样啊?今儿我就跟各位唠叨唠叨. 二.一个简单的智能合约 下面这段就是NEO实例源码里的一个,干撒用的?聪明的你一眼儿就看出来了吧,就是一个所谓域名合约的增 ...
随机推荐
- c# 操作文本文件
计算机在最初只支持ASCII编码,但是后来为了支持其他语言中的字符(比如汉字)以及一些特殊字符(比如€),就引入了Unicode字符集.基于Unicode字符集的编码方式有很多,比如UTF-7.UTF ...
- functional program language(what,include,why popular)
函数式语言(functional language)一类程序设计语言.是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组织数据结构的能力,可以把某 ...
- valgrind 工具介绍和简单的使用
最近老是遇上各种奇奇怪怪的core dump,不太会分析的情况下看到了这款工具.在这记录分享下. Valgrind 是个开源的工具,功能很多.例如检查内存泄漏工具---memcheck. Valgri ...
- jquery select使用
<select class="selector"></select> 1) 设置选中值为pxx的选项 $('.selector').val('pxx'); ...
- python 进程创建和共享内容的方法
1.使用Pool来创建进程 from multiprocessing import Pool def f(n): return n*n if __name__=="__main__" ...
- ubuntu 删除开机系统引导,设置快速开机和安静开机
1.隐藏开机选择界面 1.sudo gedit /etc/default/grub GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true //隐藏开 ...
- minifilter
暑假刚开始的时候,参照<寒江独钓>这本书,用VS2015写过的一个minifilter的框架,今天在博客上分享出来. VS2015已经有了minifilter的框架模板,直接生成了mini ...
- 第六节 静态的(static)和单例模式
main函数 主函数是一个特殊的函数,作为程序的入口,可以被jvm(虚拟器)调用 主函数的定义 public 表示该函数的访问权限是最大的. static 代表主函数随着类的加载就已经存在了. voi ...
- Kubernetes资源监控探索
搭建kubernetes集群,有一个默认的dashboard,但是这个dashboard比较简陋,不能将自定义展示.所以打算使用Grafana+Heapster+Influxdb构建一个一体化监控平台 ...
- Linux文件系统命令 ls
名称:ls 功能:查看文件列表 renjg@renjg-HP-Compaq-Pro--MT:~$ ls add-on.yaml Desktop examples.desktop meta-gnome3 ...