2019-11-29-Roslyn-通过-Nuget-管理公司配置
title | author | date | CreateTime | categories |
---|---|---|---|---|
Roslyn 通过 Nuget 管理公司配置
|
lindexi
|
2019-11-29 08:58:52 +0800
|
2018-09-18 20:33:37 +0800
|
Roslyn MSBuild 编译器
|
本文来告诉大家如何用 Roslyn 管理配置,在开一个新的项目的时候经常需要添加公司,版权等,但是这些信息不想每次都添加于是我就想用 Nuget 管理所有配置,安装一个 nuget 就自动配置
我在公司很久都没开发过业务,我都是在做底层的库,于是我就需要创建很多个项目,只要我发现某个功能用到的一些代码可以在其他功能使用,我就会将这个代码抽到一个库。
在创建新的库的时候,我就需要添加下面配置
<Company>dotnet-campus</Company>
<Copyright>Copyright (c) 2018 dotnet-campus</Copyright>
在第二年的时候,我需要修改很多库的版权,修改为 2019 ,而从 VisualStudio 打开是很慢的,修改一个项目文件需要很长的时间
而且我的团队也有新人加入,我告诉他需要添加一些配置,但是每次的提交我都需要关注,是不是公司名没写对
最近我学到 Roslyn 的方法,通过 Nuget 添加配置,下面让我手把手告诉大家如何做一个配置。在上一篇文章Roslyn 通过 nuget 统一管理信息告诉了大家如何通过手动写文件的方式做一个 nuget 包,本文来告诉大家通过 VisualStudio 创建工程的方式打包。
对比两篇博客,会发现通过 VisualStudio 打包的方式会更加简单。
先通过 VisualStudio 创建一个 dotnet core 项目,这个项目实际不需要代码。
创建了一个项目之后需要在这个项目里面添加一些文件,假设创建的项目的名字是 lindexi 在这个项目创建 Assets 文件夹,然后在文件夹里面创建 lindexi.props 文件
这个文件将会作为 nuget 安装时使用的文件,在里面就填写配置
- <Project>
- <PropertyGroup>
- <Company>dotnet-campus</Company>
- <Owners>$(Company)</Owners>
- <Copyright>Copyright (c) 2018 dotnet-campus</Copyright>
- </PropertyGroup>
- </Project>
这里的信息需要根据自己的需要写,通过这里写的内容就可以通过 nuget 安装到自己的项目
但是现在还不能做出一个 nuget 包,还需要在项目文件添加一些内容,右击工程点击编辑项目文件,在项目文件添加一些代码,请看下面代码
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Include="Assets\**" Pack="True" PackagePath="build\" />
<None Include="Assets\**" Pack="True" PackagePath="buildMultiTargeting\" />
</ItemGroup>
</Project>
在上面的代码就是添加了 Assets 文件夹,请看下面代码
<ItemGroup>
<None Include="Assets\**" Pack="True" PackagePath="build\" />
<None Include="Assets\**" Pack="True" PackagePath="buildMultiTargeting\" />
</ItemGroup>
上面的代码的意思就是打包的时候添加 Assets 文件夹内的所有文件,在打包的时候添加到 build 和 buildMultiTargeting 文件夹下
现在右击项目打包就可以在 bin\debug
文件夹下找到 xx.1.0.0.nupkg 文件
这个文件可以通过 Nuget Package Explorer 打开,这个软件可以在应用商店下载,点击下载
打开可以看到下面的文件,这里包含的 build 文件和 buildMultiTargeting
现在可以通过安装这个 nuget 包的方式,测试这个包是否可以使用。安装本地的 nuget 包的方式很简单,通过在 nuget 设置的方法,具体请看Roslyn 通过 nuget 统一管理信息
这时我创建了一个新的 dotnet core 项目,然后在这个项目安装这个包,通过这个方式编译出来的文件,右击属性就可以发现这个 dll 的信息已经包含了。
当前现在还没做完,如果这时创建了一个 dotnet framework 4.5 的项目,会发现这个包无法安装,因为这个包的依赖是 dotnet core 2.1 ,所以需要添加一些代码让这个包可以在 dotnet framework 使用
右击编辑项目文件,修改 TargetFramework 为多个,请看代码
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0;net35</TargetFrameworks>
<Version>1.6.0</Version>
<Description>林德熙是逗比</Description>
</PropertyGroup>
<ItemGroup>
<None Include="Assets\**" Pack="True" PackagePath="build\" />
<None Include="Assets\**" Pack="True" PackagePath="buildMultiTargeting\" />
</ItemGroup>
</Project>
这里将原来的 TargetFramework 修改为 TargetFrameworks 添加了其他的框架,具体可以使用的请看从以前的项目格式迁移到 VS2017 新项目格式
现在打出来的包还有影响到安装这个包的项目,还需要在项目文件做一些更改,请看代码
<IsTool>true</IsTool>
<NoPackageAnalysis>true</NoPackageAnalysis>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<NoBuild>true</NoBuild>
<IncludeBuildOutput>false</IncludeBuildOutput>
具体上面的代码的意思请看项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - walterlv
2019-11-29-Roslyn-通过-Nuget-管理公司配置的更多相关文章
- 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱
今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1. RZ10配置參數 a) 参数配置前,先导入激活版本 执行完毕后返回 b) 输入参数文件DEFAU ...
- pycharm+anaconda在Mac上的配置方法 2019.11.29
内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...
- 2019.11.29 Mysql的数据操作
为名为name的表增加数据(插入所有字段) insert into name values(1,‘张三’,‘男’,20); 为名为name的表增加数据(插入部分字段) insert into name ...
- Supervision meeting notes 2019/11/29
topic 分支: 1. subgraph/subsequence mining Wang Jin, routine behavior/ motif. Philippe Fournier Viger ...
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
- 14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB
14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persisten ...
- 7 -- Spring的基本用法 -- 11... 基于XML Schema的简化配置方式
7.11 基于XML Schema的简化配置方式 Spring允许使用基于XML Schema的配置方式来简化Spring配置文件. 7.11.1 使用p:命名空间简化配置 p:命名空间不需要特定的S ...
- 黑盒测试实践--Day5 11.29
黑盒测试实践--Day5 11.29 今天完成任务情况: 分析系统需求,完成场景用例设计 小组负责测试的同学学习安装自动测试工具--QTP,并在线学习操作 小黄 今天的任务是完成场景测试用例的设计.在 ...
- Alpha冲刺(6/10)——2019.4.29
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(6/10)--2019.4.29 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)
更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...
随机推荐
- RF变量
变量作用域 变量类型 变量作用域 case中的变量 case内部 userkeyword中的变量 userkeyword内部 文件型suite里的变量 文件suite内部,其下case均可使用 目录型 ...
- 如何消除 com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
在application.properties中添加以下两句话: eureka.client.register-with-eureka=falseeureka.client.fetch-registr ...
- D3(没写完
说在博客前 这篇博客有许多使用到 STL 的地方,由于本人实在是记不全,所以我也参考了北大的一些教材,就别说我黈力了 QwQ 数据结构 今天讲的是数据结构啦(也是我这个蒟蒻最喜欢的 一些天天见面的好盆 ...
- cors 预请求
1.CORS的其他限制 默认允许的方法只有:GET.HEAD.POST默认允许的Content-Type:text/plain.multipart/form-data.applicaton/x-www ...
- HSV颜色识别-HSV基本颜色分量范围
原文地址:https://blog.csdn.net/taily_duan/article/details/51506776 一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对 ...
- 用xmmp+openfire+smack搭建简易IM实现
功能实现:注册,登录,单聊表情,文本,图片,语音的发送接收,添加好友,删除好友,查找好友,修改密码,消息提醒设置,获取离线消息等功能 1.前期准备 1.下载opnefire软件:https://www ...
- ListView 中如何优化图片?
图片的优化策略比较多.1.处理图片的方式:如果 ListView 中自定义的 Item 中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是ListView 项中最头疼的,处理图片的方 ...
- Selenium 2自动化测试实战6(异常)
一.异常 python用异常队形(exception object)来表示异常情况,遇到错误后,会引发异常.如果异常对象并未被处理和捕捉,则程序就会用所谓的回溯(Traceback,一种错误信息)来终 ...
- maven将自己的springboot项目打包成jar包后,作为工具包引入其他项目,找不到jar中的类
将springboot项目打包成jar包,作为工具包导入项目后,找不到jar中的类. 原因是:springboot项目使用了自动的打包插件. 原先的插件配置: <build> <pl ...
- beego框架学习(三) -orm的使用
2 3 4 5 6 7 8 9 10 11 目前beego-orm支持的数据有: - MySQL:https://github.com/go-sql-driver/mysql - PostgreSQL ...