nuget在jenkins上不能自动还原项目依赖包---笔记
最近遇到一个情况,IDE 是 VS2015 Update3 ,新建一个library项目(暂时叫做 mytests),然后用 nuget 安装了一个 Shouldly 包
在 VS 上一切正常,可以跑起来。
当放到 Jenkins 上,死活不还原。查看Jenkins的输出日志,没有找到任何 mytests 自动还原的信息
最后找了一个其它能自动还原的项目一比较。发现在.csproj文件中缺少
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
最后手动修改了 mytests.csproj 文件,在
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
下面加上
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
然后在jenkins上,此项目的 nuget 就自动还原了。
一定要注意 Import 的 Project 属性,是当前项目文件(.csproj)相对于nuget.targets的路径。
我的单元测试项目是在 test 目录下,源码在 src 下 ,src 和 test 是兄弟目录,.nuget目录(文件 nuget.exe / nuget.target / nuget.config)也在src目录下
所以,我在mytest.csproj文件开头的PropertyGroup属性中,添加了下面这段Property。这个 SolutionDir 在 上面
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> 中用到。
我的SolutionDir值指向的地址是..\..\src\,这样就把目录指向src了,路径就对了。(当前目录是.csproj文件所在目录。上级是 test ,再上级是 test和src的父目录,所以 ..\..\src 就到src下面了)
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\src\</SolutionDir>
最新文章
- sqlserver批量修改首字母为大写
- js 中关联数组
- 大熊君{{bb}}移动开发之旅(第一季)
- Cocos开发中性能优化工具介绍之使用Windows任务管理器
- 【动态规划】【归并】Vijos P1412 多人背包
- centos yum
- Sql自动生成字母加数字的随机数
- sql中Statement与PreparedStatement的区别
- tomcat的环境搭建
- ES6中的迭代器(Iterator)和生成器(Generator)
- 【转载】兼容所有浏览器的JQuery zClip插件实现复制到剪贴板功能
- Eclipse导入已有的项目后项目报错的解决办法
- 最新安全狗 apache v4.0 sql注入 bypass
- PAT A1137 Final Grading (25 分)——排序
- f5申请并激活License
- 深入理解Java虚拟机--阅读笔记二
- 新手向:从不同的角度来详细分析Redis
- date的讲解及分析
- 转 js事件探秘
- BZOJ 3295 动态逆序对 | CDQ分治