统一使用 Directory.Build.props 管理项目

39ec3969535a57e5989fd4364398aa8a.png

可以添加要由 MSBuild 导入的某些文件,以替代默认属性设置并添加自定义目标。可以通过这些文件的放置位置在文件夹级别控制这些自定义项的范围。

本文介绍适用于以下方案的自定义:

自定义解决方案中多个项目的生成设置

在通用文件目录下自定义多个解决方案的生成设置

自定义对复杂文件夹结构中的子文件夹来说可能不同的生成设置

替代默认设置、默认生成文件夹以及 SDK 设置的其他行为,例如 Microsoft.Net.Sdk

添加或自定义应用于任意数量的项目或解决方案的生成目标

以上的内容来自微软官网:

https://learn.microsoft.com/zh-cn/visualstudio/msbuild/customize-by-directory?view=vs-2022

Part 1

系统框架升级的三种方式

一、在之前,直接在.csprj文件中,指定对应的版本号即可,类似这样的:

<PropertyGroup>
  <TargetFramework>net8.0</TargetFramework>
  <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
  <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>

这样比较直观,不过随着.net从5.0一直升级,再加上框架有好多分层的时候,改起来不仅累人,而且还有一定的顺序,我个人都是从内到外,从最深层到外层,比如从common到web层,然后保证每次都能成功。

二、后来,听到有粉丝的留言,可以统一把版本写到一个文件中,然后在每一个分层进行引用即可,这样每次升级,只需要改文件,具体的操作,可以看之前我写的这篇文章:

【Blog.Core开源】完成升级.NET 8.0
但是这样也有一个不得劲的地方,就是每个分层,都需要写一个导入的语句。

c3dc2a1748fc8319011cf0835b1b7f23.png

三、在开发组-Lemon的提示下,我学习到微软官方其实已经有这个更为简单的设计思路,直接是.sln项目解决方案的文件根目录里,建一个编译的文件,指定sdk即可,

<Project>
    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>
</Project>

然后就可以把每一次的都给删除了,升级的时候,直接更新这一个文件,真真的实现一键操作。

最后,要记得是Dockerfile构建镜像的时候,要把这个文件COPY一下

ac40fd6e6ee080656b70a0c1d03c8dae.png

有了这些简单的修改,下一篇我们就可以一键升级.net9.0啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Props是Vue.js中的一种属性,它允许将数据从父组件传递给子组件。这意味着您可以使用父组件中的数据来渲染子组件,并在子组件中更新这些数据,以便在父组件中进行响应式。 在Vue.js中,props使用以下语法: ``` Vue.component('my-component', { props: ['propA', 'propB'], // ... }) ``` 在上面的代码中,我们定义了一个my-component组件,并将propA和propB作为其props属性。这样,在父组件中使用my-component组件时,我们可以像这样传递数据: ``` <my-component propA="valueA" propB="valueB"></my-component> ``` 然后,在my-component组件中,我们可以通过以下方式访问这些props: ``` Vue.component('my-component', { props: ['propA', 'propB'], template: '<div>{{ propA }} - {{ propB }}</div>' }) ``` 在上面的代码中,我们使用插值绑定来输出propA和propB的值。这样,当父组件传递不同的值时,my-component组件的输出也会相应地更新。 另外,您还可以在props中指定类型和默认值,以确保传递给组件的数据符合预期并可以正常工作。例如: ``` Vue.component('my-component', { props: { propA: { type: String, required: true }, propB: { type: Number, default: 100 } }, template: '<div>{{ propA }} - {{ propB }}</div>' }) ``` 在上面的代码中,我们指定了propA的类型为String,并将其标记为必需。这意味着如果父组件没有传递propA,则会发出警告。同时,我们指定了propB的类型为Number,并将其默认值设置为100。这意味着如果父组件没有传递propB,则propB将默认为100。 总之,props是Vue.js中非常重要的一部分,它允许我们将数据从父组件传递到子组件,以便在子组件中进行渲染和更新。使用props,我们可以创建更具可重用性和模块化的组件,从而提高应用程序的可维护性和扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值