纯粹是因为同事习惯了写C#代码,开发的网站用C#编译, 对于习惯了用Maven编译的测试人员,真是一头雾水。不用jenkins吧,效率特别低,每次收到开发发过来的版本,还要进行数据库相关配置,是非常累人的。 纠结了一番还是尝试了用jenkins 构建C#代码写的网站。

解决办法如下:

1. 问开发的编译环境,开发很多是不知道jenkins的,因为他们只在本地编译。但是会告诉你一些非常有用的信息,比如说MSBuild,nuget,VisualStudioVersion等,此时,你一定要同时问他们使用的版本号,不是最新的就是最好的,一定是相互配合最默契的版本才是合适的。开发告诉你什么版本,就严格按照说的来,不然你就掉进吭里了

2. MSbuild,那么你最好用windows版本的jenkins,因为已有一台服务器是Linux的服务器,想偷懒,在上面直接装插件编译,百度了一圈,没有这样做的。 无奈,再搭一台jenkins. 搭建过程非常简单官网上百度一下,我安装的是这个版本,非常好用,默认安装好后按帮你自动转了SVN插件。

3. 再Jenkins服务器上,需要安装如下软件:

.netframework 去百度一下并下载:NDP452-KB2901907-x86-x64-AllOS-ENU.exe

虚拟光驱工具(为了安装Visual Studio ):Windows虚拟光驱(Daemon Tools Lite)_146@472225.exe

Visual studio2013下载和安装(附资源和密钥)简书上有分享的下载地址:

nuget, 到官网下载: https://www.nuget.org/downloads  不要下最新的,下载最新的有坑

下载好后,要记得把nuget.exe放到jenkins安装目录下,否则后面在jenkins里面cmd运行时会有问题。我放在了这里

4. jenkins上需要安装的插件:

安装MSBbuild插件

配置全局工具

5. 接下来,需要得到SVN上的源码和源码目录结构

比如说我这个目录结构是这样的

6. jenkins上配置job

这样就配置好了,点【立刻构建】,会进行打包,可以到工作目录里去找到Myrelease查看输出内容

7. 接下来,可以将Myrelease下的内容压缩后,归档,可以使用7z.exe(因为可以打包成tar包,可以方便的丢到linux服务器下进行解压),在通过SSH插件将文件传输到linux或者windows机器(Linux一般默认安装好了SSH,Windows上可以安装BvSshServer-Inst.exe),还是通过下面这个插件,执行shell命令或者cmd命令,直接启动服务。

8. 另外,想通过SSH运行windows机器上的批处理文件,必须放在正确的路径下!

作者: 梅梅~

出处: https://www.cnblogs.com/keeptesting

关于作者:专注软件测试,测试运维相关工作,请多多赐教!

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 欢迎沟通交流加微信联系。 微信:yangguangkg20140901 暗号:博客园.

jenkins如何构建C#代码写的网站的更多相关文章

  1. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  2. 实战:向GitHub提交代码时触发Jenkins自动构建

    当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...

  3. Jenkins+PMD构建自动化静态代码检测

    前言:软件缺陷是不可避免的,要尽量减少错误并提高软件质量,主要有两在类技术,即缺陷预防和缺陷检测 缺陷预防包括编写更好的设计规范.实施代码审核制度.运行代码静态分析工具.运行单元测试等 PMD是一种开 ...

  4. Gitlab源码库里代码提交后,如何触发jenkins自动构建?

    版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...

  5. 基于Jenkins自动构建系统开发

    1  绪论 1.1 课题的研究背景 随着IT行业的不断发展,软件开发的复杂度也随着不断提高.与此同时,软件的开发团队也越来越庞大,而如何更好地协同整个团队进行高效准确的工作,从而确保软件开发的质量已经 ...

  6. 从零开始使用Jenkins来构建Docker容器(Ubuntu 14.04)

    当开发更新了代码,提交到Gitlab上,然后由测试人员触发Jenkins,于是一个应用的新版本就被构建了.听起来貌似很简单,duang~duang~duang,我用了是这样,你们用了也是这样,看起来这 ...

  7. 使用Jenkins来构建Docker容器

    使用Jenkins来构建Docker容器(Ubuntu 14.04) 当开发更新了代码,提交到Gitlab上,然后由测试人员触发Jenkins,于是一个应用的新版本就被构建了.听起来貌似很简单,dua ...

  8. Jenkins自动化构建配置

    写在前头 我每次修改代码一点东西,都要进行一个重新发布.重新发布的流程大概如下: 将最新代码同步上传到git上面 Maven打包 mvn clean install 将最新的jar包上传到服务器上面, ...

  9. 【最新】Android使用jenkins全自动构建打包-Windows版本(Android,Jenkins,360加固,Email,QRcode,参数构建,蒲公英)

    Android打包喝咖啡系列(Windows版) 这篇博客主要讲述的内容: 1.windows上部署Jenkins https://jenkins.io 2.基于SVN或Git https://git ...

随机推荐

  1. SpringBoot2.x项目pom.xml第一行报错

    原来使用的是2.1.4 后来改成2.1.3 保存自动从新下载就好了    毕竟使用人数多 maven地址:https://mvnrepository.com/artifact/org.springfr ...

  2. PAT 1145 1078| hashing哈希表 平方探测法

    pat 1145: 参考链接 Quadratic probing (with positive increments only) is used to solve the collisions.:平方 ...

  3. 初学树型dp

    树型DP DFS的回溯是树形DP的重点以及核心,当回溯结束后,root的子树已经被遍历完并处理完了.这便是树形DP的最重要的特点 自己认为应该注意的点 好多人都说在更新当前节点时,它的儿子结点都给更新 ...

  4. 3、zabbix组件之间的关系

    我们在安装zabbix的时候安装了四个软件:zabbix-server.zabbix-server-mysql.zabbix-web-mysql.zabbix-agent,那么这个四个软件之间有什么关 ...

  5. MNIST手写数字识别进阶:多层神经网络及应用(1)

    # 一.载入数据 import tensorflow as tf import numpy as np #导入tensorflow提供的读取MNIST的模块 import tensorflow.exa ...

  6. [C0] 人工智能大师访谈 by 吴恩达

    人工智能大师访谈 by 吴恩达 吴恩达采访 Geoffery Hinton Geoffery Hinton主要观点:要阅读文献,但不要读太多,绝对不要停止编程. Geoffrey Hinton:谢谢你 ...

  7. 自定义安装office

    自定义安装office 1.下载office安装包:https://msdn.itellyou.cn 2.下载offiice部署工具:https://www.microsoft.com/en-us/d ...

  8. [日常] NOI2019 退役记

    这次要彻底退役了 开个坑先 Day -2 出发坐车去gz 好像和上次去雅礼的车是同一趟于是大家都以为和上次一样是 \(10:40\) 开车, 于是提前2h大概八点多就去坐公交了 到了之后取票, 发现票 ...

  9. Python连载18-closure闭包解释及其注意点

    一.闭包 1.定义:当一个函数在内部定义函数,并且内部的函数应用外部函数的参数或者局部变量,当内部函数被当做返回值的时候,相关参数和变量保存在返回的函数之中,这种结果,叫做闭包. 2.例子:连载17中 ...

  10. 十二、Spring之IOC容器初始化

    Spring之IOC容器初始化 前言 在前面我们分析了最底层的IOC容器BeanFactory,接着简单分析了高级形态的容器ApplicationContext,在ApplicationContext ...