2017-02-24 3 views
1

AppVeyor로 버전이있는 바이너리를 빌드하기 위해 Asp.Net 핵심 프로젝트 (csproj)를 패치하는 방법은 무엇입니까? AssemblyVersion 및 FileVersion에 대해 버전 관리를 별도로 적용 할 수 있습니까?AppVeyor로 ASP 코어 (미리보기 4)의 패치 버전

AppVeyor에는 AssemblyInfo.cs 파일을 패치하기위한 사전 정의 된 단계가 있지만 ProjectInfo.cs 파일에는 포함되어 있지 않으며 AssemblyInfo의 기능이 csproj 파일로 이동되므로 버전 관리 방법이 명확하지 않습니다.

감사합니다.

답변

4

.NET .csproj는 일반 XML이므로 PowerShell 스크립트를 사용하여 버전 정보를 업데이트 할 수 있습니다. 예를 들어, MyProject\MyProject.csproj 다음이있을 수 있습니다

<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0"> 
    <PropertyGroup> 
    <OutputType>Exe</OutputType> 
    <TargetFramework>netcoreapp1.0</TargetFramework> 
    <Version>1.2.3.4</Version> 
    </PropertyGroup> 
    <ItemGroup> 
    <Compile Include="**\*.cs" /> 
    <EmbeddedResource Include="**\*.resx" /> 
    </ItemGroup> 
    <ItemGroup> 
    <PackageReference Include="Microsoft.NETCore.App" Version="1.0.1" /> 
    </ItemGroup> 
</Project> 

그런 다음 AppVeyor에 스크립트 <Version> 패치는 다음과 같습니다

$xmlPath = "$env:appveyor_build_folder\MyProject\MyProject.csproj" 
$xml = [xml](get-content $xmlPath) 
$propertyGroup = $xml.Project.PropertyGroup | Where { $_.Version} 
$propertyGroup.Version = $env:appveyor_build_version 
$xml.Save($xmlPath) 
+0

감사합니다, 표도르이 솔루션이 도움이! – Valentine

+0

이것은 AppVeyor에서 구현됩니까? – Julian

+0

예, 문제가 있습니다 : https://github.com/appveyor/ci/issues/1404 –