用 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实例源码里的一个,干撒用的?聪明的你一眼儿就看出来了吧,就是一个所谓域名合约的增 ...
随机推荐
- python爬虫---requests库的用法
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下 ...
- flex对象.show()的时候display变成block
在css中设置display: none;的对象会出现这种情况. 在JavaScript中用.hide()隐藏的对象不会出现.
- 十七、Spring框架(IOC/DI)
一.Spring框架 Spring是一个基于IOC和AOP的结构J2EE系统的框架. 1.IOC反转控制是Spring的基础(Inversion Of Control).也就是说创建对象由以前的程序员 ...
- 第一讲(3)osgearth编译
前题条件完成osg 3.0的编译Step 1 下载osgEarth 2.1.1https://github.com/gwaldron/osgearth/downloads------------> ...
- Python之简单的用户登录和注册
# -*- coding: utf-8 -*- # @Time : 2018/7/26 20:16 # @Author : Adam # @File : exam2.py # @Project: ke ...
- Spring boot返回JSON类型响应及Content-Type设置
一.背景 服务器软件用Spring boot开发,API调用的响应消息格式为JSON. 对端调用接口后无法解析响应. 抓包看Response的Body部分确实是正确的JSON格式字符串. 二.问题分析 ...
- javascript 字符串函数
字符串的截取 str.substring(0,index) 字符串转换为日期 <script> var s = "2017-04-10"; var d = s.repl ...
- learning hdmi edid protocol
referenc: https://en.wikipedia.org/wiki/Extended_Display_Identification_Data
- 在项目中使用 SCSS
背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...
- UVa LA 3213 - Ancient Cipher 水题 难度: 0
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...