经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件图像 » Visual Studio » 查看文章
packagereference 里面的资产是怎么回事?
来源:cnblogs  作者:诺贝尔  时间:2018/9/25 20:48:54  对本文有异议
  1. <PackageReference Include="Newtonsoft.Json" Version="9.0.1">
  2. <ExcludeAssets>All</ExcludeAssets>
  3. </PackageReference>


在项目文件里面,这一行代表引用包,可是有三个子项目,需要说一下:

IncludeAssets

ExcludeAssets

PrivateAssets

这三个是什么意思?

中文翻译,Assets是资产,反正无法理解说的是什么鬼。一开始我以为它可以定制引用库里面那个类,搞了好久才发觉这是一个部署选项。

可以取值:

compile   影响是否编译到当前项目

runtime   影响到运行时可不可以使用

contentFiles

build      

analyzers

native

none        无

all            全部

这个packagereference 设计得非常灵活,他并不是我理解中那个单纯的包管理条目,他还设计成为编译过程中的各个组件提供资料的条目。如果单纯的代码包,用compile可以编译通过,但是不能执行,会提示缺乏相关库,如果compile和runtime一起使用,就能正常编译和运行。其他那些顾名思意,也是为编译过程的各种组件服务的。有一些库并不是运行文件需要的,而只是作为辅助开发工具使用,那么就可以用none。


另外,项目文件支持一个判断条件:

Condition="'$(TargetFramework)'=='netcoreapp2.1'"

这个判断条件可以根据不同的项目类型来选择引入相关包,非常好用。

项目文件

  1. <Project Sdk="Microsoft.NET.Sdk">
  2.  
  3. <PropertyGroup>
  4. <OutputType Condition="'$(TargetFramework)'=='netcoreapp2.1'">Exe</OutputType>
  5. <PackageVersion>1.0.2</PackageVersion>
  6. <TargetFrameworks>netstandard2.0;netcoreapp2.1</TargetFrameworks>
  7. </PropertyGroup>
  8.  
  9.  
  10. </Project>
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号