Directory.Build.Props 및 종속 로봇 동작
7199 단어 devopsproductivitydotnetgithub
이 파일은 무엇입니까?
Directory.Build.Props
는 개발자가 동일한 리포지토리의 서로 다른 dotnet 프로젝트 간에 여러 구성 및 변수를 공유할 수 있도록 하는 파일입니다. 이를 염두에 두면 언어 버전 또는 dotnet 대상 프레임워크와 같은 동일한 규칙에 따라 프로젝트를 더 쉽게 적용할 수 있습니다. 파일Directory.Build.props
은 영향을 받을 모든 하위 프로젝트에 대한 리포지토리 또는 솔루션의 루트 폴더에 있어야 합니다.이 파일의 예를 살펴보겠습니다.
Directory.Build.props
<Project>
<!-- Shared Settings -->
<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<!-- Versions -->
<PropertyGroup>
<AspNetCoreVersion>5.0.0</AspNetCoreVersion>
<EntityFrameworkVersion>5.0.2</EntityFrameworkVersion>
</PropertyGroup>
</Project>
프로젝트.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- Specific project properties that override the properties present on Directory.Build.props -->
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<!-- Nuget packages using the version from Directory.Build.props -->
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="$(AspNetCoreVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="$(AspNetCoreVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(AspNetCoreVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="$(AspNetCoreVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="$(AspNetCoreVersion)" />
<PackageReference Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="$(AspNetCoreVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(EntityFrameworkVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(EntityFrameworkVersion)" />
</ItemGroup>
<!-- Other properties here -->
</Project>
NuGet 종속성에 대한 버전 관리 시스템으로 사용
상위 두 파일에서 볼 수 있듯이
AspNetCoreVersion
에 Directory.Build.props
라는 변수를 생성하고 있습니다. 이를 사용하여 해당 변수를 버전 번호로 사용하는 모든 패키지가 동일한 버전을 사용하도록 할 수 있습니다. 이렇게 하면 하나의 변수만 제어하여 여러 업데이트 및 불일치 버전을 방지할 수 있습니다.이 기사를 작성할 당시 Rider는 이 버전 관리 시스템과 잘 통합되지 않았습니다. 패키지 업그레이드를 위해 Rider 도구를 사용하는 대신
Directory.Build.props
파일을 수동으로 편집해야 합니다. dotnet 도구에서도 마찬가지입니다dotnet-outdated
. Visual Studio의 경우 시스템 제한으로 인해 동작을 테스트할 수 없었습니다.Dependabot과 통합
종속성을 버전화하는 이러한 방식의 통합은 dependsabot과 매우 잘 작동합니다. 봇은 버전 변경에 영향을 미치는 영향을 받는 패키지 목록을 제공할 것입니다. 예를 들어 위의 예에서 봇은 패키지
EntityFrameworkVersion
및 Microsoft.EntityFrameworkCore.Sqlite
에 영향을 미치는 1.0.0에서 1.0.1로 업그레이드할 것임을 알리는 Microsoft.EntityFrameworkCore.Tools
에 대한 새 풀 요청을 생성합니다.자세한 내용은 Pull Request을, 자세한 내용은 아래 스크린샷을 참조하십시오.
참조
샘플
묻다 / 타오르는 피자 작업장
Blazor 웹어셈블리 워크샵
공저자
.ltag__user__id__166691 .follow-action-button {
배경색: #0030b3 !중요;
색상: #ffffff !중요;
테두리 색상: #0030b3 !중요;
}
표트르 유스티나 팔로우
/piotrjustyna
Reference
이 문제에 관하여(Directory.Build.Props 및 종속 로봇 동작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/askpt/directorybuildprops-and-dependabot-behaviour-4cb3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)