[英]Setting .net core library assembly/file/nuget package version at build time
我是在構建時設置我的.net核心庫的匯編版本(以及文件版本和nuget包版本)的方法。 我的庫是使用最新的Visual Studio 2017 RC編寫的,所以沒有更多的projects.json
文件,並且由TeamCity構建,使用標准的powershell buildscript調用dotnet restore
dotnet build
dotnet test
,當然還有dotnet pack
。
一直在掃描網絡尋找一個優雅的解決方案,但沒有發現任何接近它的東西。 我在interweb上找到的只是現在過時的xproj
和projects.json
格式。
我很驚訝dotnet build
和dotnet pack
命令不支持開箱即用。
謝謝 :)
如果有其他人出現並需要這個,請將其添加到您的csproj:
<PropertyGroup>
<Version>1.2.3.4</Version>
<PackageId>$(AssemblyName)</PackageId>
<Title>My Super Library</Title>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<Company>AwesomeCo, Inc.</Company>
<Product>My Super Library</Product>
<Copyright>Copyright © AwesomeCo, Inc. 2016-2017</Copyright>
<Description>There can be only one.</Description>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GenerateAssemblyTitleAttribute>true</GenerateAssemblyTitleAttribute>
<GenerateAssemblyConfigurationAttribute>true</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>true</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>
<GenerateAssemblyCopyrightAttribute>true</GenerateAssemblyCopyrightAttribute>
<GenerateAssemblyVersionAttribute>true</GenerateAssemblyVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute>true</GenerateAssemblyInformationalVersionAttribute>
</PropertyGroup>
我們的PackageId
顯然與我們的項目名稱相同,但您可以更改它。
您可以在csproj中硬編碼$(版本),或者在發布/打包時將其發送到:
dotnet publish /property:Version=1.2.3.4
對於那些仍然想知道如何在不大量修改csproj
文件的情況下執行此操作的人,您可以將msbuild
params與您的dotnet
命令一起傳遞,在這種情況下,我們可以簡單地執行
dotnet build /p:Version=1.2.3
dotnet publish /p:Version=1.2.3
這會將程序集和文件版本都設置為1.2.3
。 我已經驗證了.Net Core 2 SDK
我知道這已經得到了回答,但是有一種不同的方法使用環境變量並且不需要所有標簽
編輯項目文件(csproj)並包含以下基於條件的版本標記
<Version Condition=" '$(BUILD_NUMBER)' == '' ">0.0.0</Version>
<Version Condition=" '$(BUILD_NUMBER)' != '' ">$(BUILD_NUMBER)</Version>
這里BUILD_NUMBER是TeamCity公開的環境變量。 如果內部版本號為30,則上面的版本將為30.0.0.0
請注意,如果BUILD_NUMBER變量不存在,則版本號將全為零(0.0.0)。
希望這能為上面提供一種替代方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.