2017-02-24 56 views
1

如何修補Asp.Net核心項目(csproj)以建立與AppVeyor版本化的二進制文件? 有沒有對AssemblyVersion和FileVersion單獨應用版本控制的方法?補丁版的ASP核心(預覽版4)與AppVeyor

AppVeyor有預定義的步驟來修補AssemblyInfo.cs文件,但它沒有包含在項目中,並且AssemblyInfo的功能移動到了csproj文件,因此目前還不清楚如何處理版本控制。

感謝您的幫助!

回答

4

由於.NET Core .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 –