C#解决方案生成工具(2)
环境 VS2017 社区版 W10
Project类 : 在Microsoft.Build.Evaluation命名空间下,可使用Project类分析项目的.csproj文件
// 实例化对象,参数是项目的.csproj文件的路径
var proj = new Project("d:/xxx/xxx.csproj");
// 调用这个方法会更新.csproj文件.
proj.Save()
// 如果指定路径,会保存到新路径上,用此办法,可以使用一个.csproj模板来新生成各种项目的.csproj文件
proj.Save(新的路径)// 将当前.csproj文件保存到新的路径,源有文件不变化.
// 根据属性名获取属性的值,.使用这个方法获取项目的相关信息,比如项目名,项目路径
proj.GetPropertyValue("ProjectName")// 获取项目名字
通过打印所有属性的名值对,可以知道有哪些属性可以使用.
proj.Properties // 显示有328个属性,几乎需要知道的属性都有.
使用过程中遇到的问题:
在实例化一个asp.net webapi项目时,传入.csproj文件后,实例化失败,异常显示找不到 Microsoft.WebApplication.targets 这个东西.
对着.csproj文件查找之后,认为有三处与之关相的节点:
<Project ToolsVersion="12.0" // 不同VS版本建立的项目不同,另外项目类型不同时也不一样.vs2017建的DLL项目值显示是15
// 以下两个节点指示了Microsoft.WebApplication.targets引用路径,看来问题原因是找不到这个路径下的这个东西
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
由于未成分析出节点属性意义,所以没想过修改节点属性值来解决问题.通过在本机查找Microsoft.WebApplication.targets文件,找到两个目录下有.
// VS编译工具目录 v15
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0
// VS2017COMMUNITY 编译工具目录 15
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0
第2个目录是安装VS2017的目录,第1个目录不清楚.也许这和安装VS的时候有关系.异常信息显示为找不到Microsoft.WebApplication.targets的出错路径是第1个目录下找不到.看来编译工具默认是
找第1个路径下的V15版本下的这种文件,然后发现没找到.因为本来就没有.
最后解决办法时,将第2个目录下的这个WebApplications文件夹复制到第1个目录下,但是对应的V15版本目录下.即:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0 然后会发现没有异常了.实例化成功.
C#解决方案生成工具(2)的更多相关文章
- C#解决方案生成工具
实验环境 VS2017 C# .NET4.6 项目都是.net framework框架 目的: 用程序生成解决方案和项目. 思路:手动建一个方案和项目,分析其中的文件内容,做成模板后,由程序调用.最 ...
- 赞!jsPDF – 基于 HTML5 的强大 PDF 生成工具
jsPDF 是一个基于 HTML5 的客户端解决方案,用于生成各种用途的 PDF 文档.使用方法很简单,只要引入 jsPDF 库,然后调用内置的方法就可以了.浏览器兼容性: IE 10, Firefo ...
- jsPDF – 基于 HTML5 的强大 PDF 生成工具
jsPDF 是一个基于 HTML5 的客户端解决方案,用于生成各种用途的 PDF 文档. 使用方法很简单,只要引入 jsPDF 库,然后调用内置的方法就可以了. 米扑科技项目用到了HHTML5生成PD ...
- 【C#附源码】数据库文档生成工具支持(Excel+Html)
[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...
- 微软开源全新的文档生成工具DocFX
微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...
- css sprite,css雪碧图生成工具V3.0更新
V3.0主要改进 1.增加了单独添加单张图片以及删除单张图片的功能 2.增加了生成.sprite文件用以保存雪碧图信息 3.增加了打开.sprite文件功能 什么是css sprite CSS spr ...
- DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)
前言: 距离上一个版本V3.3版本的文章发布,已经是1年10个月前的事了. 其实版本一直在更新,但也没什么大的功能更新,总体比较稳定,所以也不怎么写文介绍了. 至于工作上的事,之前有半年时间跑去学英语 ...
- C/C++ makefile自动生成工具(comake2,autotools,linux),希望能为开源做点微薄的贡献!
序 在linux下C或C++项目开发,Makefile是必备的力气,但是发现手写很麻烦. 在百度有个comake2工具,用于自动生成Makefile工具,而在外边本想找一个同类工具,但发现 ...
- .NET平台开源项目速览(4).NET文档生成工具ADB及使用
很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧 ...
随机推荐
- Pair Project
以前只是一个人完成一个项目,不论什么都是,现在突然要两个人一起来写, 听上去挺稀奇的,也挺简单的,可惜了就是“听上去”而已.我认为这也是一种技术啊~ 我跟我的搭档研究了好久好久,选择了好久,然后也选了 ...
- mysql常用命令行操作(一):登陆、退出、查看端口、修改密码、刷新
一.登陆和退出mysql mysql -u root -p # 登陆exit # 退出 二.查看当前mysql的端口号 show global variables like 'port'; 三.查看用 ...
- Dockers 学习
Docker镜像操作,有五个常用的命令: a.拉取镜像,后跟镜像仓库名称,如果要指定某个版本,可以带上tag. > docker pull <repo>[:tag] b.列出所有镜像 ...
- laravel 关联中的预加载
预加载 当作为属性访问 Eloquent 关联时,关联数据是「懒加载」的.意味着在你第一次访问该属性时,才会加载关联数据.不过,是当你查询父模型时,Eloquent 可以「预加载」关联数据.预加载避免 ...
- [转帖]wifi 4G 和 蓝牙的区别
作者:沈万马链接:https://www.zhihu.com/question/64739486/answer/225227838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- select非group by字段的方法
只需要将非group by字段放进函数中即可:
- Oracle循环
--无条件循环 declare v_num ; begin loop dbms_output.put_line(v_num); v_num:; ; end loop; end; --有条件循环 dec ...
- 二叉搜索树的第k个节点
给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. = =一看就想到中序遍历 public class Soluti ...
- php 将数组转换网址URL参数
$array =array ( 'id' =123, 'name' = 'dopost' );echo http_build_query( $array );//得到结果id=123name=dopo ...
- Python自动化运维之pexpect从入门到精通
1. 应用场景 模拟ssh, telnet远程登录, 模拟ftp文件上传 2. 安装 参考资料: <pexpect实例分析>https://www.ibm.com/developerwor ...