2019-7-22-Roslyn-获得-sln-文件所在的文件夹
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
Roslyn 获得 sln 文件所在的文件夹
|
lindexi
|
2019-07-22 08:57:14 +0800
|
2019-01-02 16:40:57 +0800
|
Roslyn MSBuild 编译器
|
我找了很久没有发现 SolutionDir 这个定义,所以只能通过一个不通用的方法找到
在之前的项目可以使用 PreBuildEvent 的方式指定编译之前事件,新的项目格式也可以支持这个方法,只是支持不是很好
我就遇到在 Jenkins 无法编译通过,因为 PreBuildEvent 指定的 $(SolutionDir) 是空
在新的项目格式,找了很久都没有找到 $(SolutionDir) 的定义和找到运行的 sln 文件的定义的方法
于是通过 Directory.Build.props 的方法找到 sln 文件
在 sln 文件所在的文件夹添加 Directory.Build.props 文件,因为很多项目的 sln 都在项目的最外,所以通过这个方法找到 sln 是可以的,只是不通用
如我有一个项目 lindexi 这个项目的文件夹请看下图
| Directory.Build.props
| lindexi.sln
| README.md
|
\---src
lindexi.csproj
在 Directory.Build.props 添加下面代码
<Project>
<PropertyGroup>
<SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir>
</PropertyGroup>
</Project>
因为 $(MSBuildThisFileDirectory) 就是当前的文件的文件夹,这个文件和 sln 文件刚好在相同的文件夹,所以通过这个方法就可以获得 sln 所在的文件夹
项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - walterlv
MSBuild Well-known Item Metadata
MSBuild Reserved and Well-known Properties
更多请看 手把手教你写 Roslyn 修改编译
2019-7-22-Roslyn-获得-sln-文件所在的文件夹的更多相关文章
- Eclipse 打开当前文件所在的文件夹
两种方法: 1.安装EasyExplorer插件,有了这个插件就可以很方便地打开资源文件所在的文件夹了. EasyExplorer 从 http://sourceforge.net/projects/ ...
- Eclipse中快速打开文件所在的文件夹位置
本篇文章是紧接着Elicpse使用技巧-打开选中文件文件夹或者包的当前目录文章写的,本文主要是讲的利用eclipse插件的方式打开文件夹的位置, 由于eclipse版本的区别,所以插件也分成两种(实测 ...
- JS获取当前文件所在的文件夹全路径
var js = document.scripts; js = js[js.length - 1].src.substring(0, js[js.length - 1].src.lastIndexOf ...
- myeclipse,eclipse打开当前文件所在文件夹
方法一: eclipse打开当前文件所在文件夹的插件Run-->External Tools-->External Tools Configurations...new 一个 progra ...
- 给JAVA的eclipse IDE 在线安装 SVN插件 / 给 eclipse 添加打开所在的文件夹功能
http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 首先,在这个网址找着最新在线安装链接 就是那个 Links for ...
- java使用io创建文件与删除文件的工具类
java中对于文件的操作,是再常见不过了.以下代码是自己代码中所用到的工具类,仅供参考. import java.io.File; import java.io.IOException; /** * ...
- python按照文件创建日期整理文件至文件夹
# -*- coding: utf-8 -*- # @Time : 2019-02-15 13:31 # @Author : cxa # @File : sortbydate.py # @Softwa ...
- [java] DOS编译 .java 文件得到 .class 文件 并执行 以及使用外部 .jar包 时的命令
当写一个java文件后,在DOS中进行编译与执行时,如果没有引入外来的包,那情况很简单 例如: public class hello_world { public static void main(S ...
- python文件操作:文件处理与操作模式
一,文件处理的模式基本概念 #coding:utf-8 # 一: 文件处理的三个步骤 # 1. 打开文件拿到文件对象(文件对象====>操作系统打开文件====>硬盘) # f=open( ...
随机推荐
- Unknown command: crawl
Use "scrapy" to see available commands 1.使用命令行方式cmd,是因为没有cd到项目的根目录,crawl会去搜索cmd目录下的scrapy. ...
- 接口--全局异常配置--异常处理handle自定义配置
在重写了异常处理的handle类之后需要配置配置文件中handle的路径:
- vim 简明教程(转自飘过的小牛)
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...
- 这些Excel学会了,你做账的效率将大大提高
这些Excel学会了,你做账的效率将大大提高 这些功能学会了,工作效率将大大提高. 1.excel的快速访问工具栏: 我的快速访问工具栏由左到右主要是"保存"."新建&q ...
- Mybatis 框架搭建实例
前言 MyBatis是一个优秀的持久层框架.原生的jdbc操作存在大量的重复性代码(如注册驱动,创建连接,创建statement,结果集检测等).框架的作用就是把这些繁琐的代码封装. MyBatis通 ...
- 2019.8.1 NOIP模拟测试11 反思总结
延迟了一天来补一个反思总结 急匆匆赶回来考试,我们这边大家的状态都稍微有一点差,不过最后的成绩总体来看好像还不错XD 其实这次拿分的大都是暴力[?],除了某些专注于某道题的人以及远程爆踩我们的某学车神 ...
- day36 05-Hibernate检索方式:离线条件查询
图二 离线条件查询 Struts 2是web层的框架.session得在dao层才有.有的时候这些数据是没在你的对象里面的.像是否上传简历.这个字段不在我的数据库里面.例如是否上传简历这个条件不在我们 ...
- 【洛谷P1632】点的移动
P1632 点的移动 题目描述 平面上有N个整数坐标点.如果将点(x0,y0)移动到(x1,y1),则需要的代价为|x0-x1|+|y0-y1|.求使得K(K=1,-,N)个点在同一位置上最少需要的代 ...
- tomcat标准化安装
操作系统说明: 操作系统 版本 linux red hat release 6.4 关键软件包说明: 软件包 版本 目录 运行用户 jdk-7u79-linux-x64.gz 1.7 /usr/loc ...
- JavaScript--jquery.min.js文件
/*! jQuery v1.12.3 | (c) jQuery Foundation | jquery.org/license */ !function(a,b){"object" ...