我想編譯我的程序集後創建nuget包(並將它們部署到我的私人nuget存儲庫)。從TFS構建過程創建和發佈nuget包?
我試着用NuGetter來設置所有的東西,但是那個項目是不活躍的,只允許你在需要一個包/程序集的時候創建一個包/項目。
現在我有點卡住了。我目前正在看他們的來源,希望能讓它更適合我。
我在這裏問的同時是:有沒有人有完整的解決方案,用於從TFS 2012和/或TFS2010發佈/創建nuget包以實現多包解決方案?
我想編譯我的程序集後創建nuget包(並將它們部署到我的私人nuget存儲庫)。從TFS構建過程創建和發佈nuget包?
我試着用NuGetter來設置所有的東西,但是那個項目是不活躍的,只允許你在需要一個包/程序集的時候創建一個包/項目。
現在我有點卡住了。我目前正在看他們的來源,希望能讓它更適合我。
我在這裏問的同時是:有沒有人有完整的解決方案,用於從TFS 2012和/或TFS2010發佈/創建nuget包以實現多包解決方案?
I tried setting everything up by using NuGetter, but that project is kind of inactive and only allows you to build one package/project while I need one package/assembly.
NuGetter支持多個包,我現在只使用多包方法,因爲您可以將它用於單個或多個包。
使用封裝的XML文件,您可以指定多個包
<?xml version="1.0"?>
<NuGetterPackages>
<NuGetterPackage name="Package1">
<NuSpecFilePath>Package1.nuspec</NuSpecFilePath>
<BasePath>NuGetPrePackage_Package1</BasePath>
<InvokePowerShell>True</InvokePowerShell>
<PowerShellScriptPath>PrePackage_Package1.ps1</PowerShellScriptPath>
<InvokePush>True</InvokePush>
<OutputDirectory>NuGetPackage</OutputDirectory>
<PushDestination>\\MYFeedLoc\NugetFeed</PushDestination>
<Version>1.0.J.B</Version>
</NuGetterPackage>
<NuGetterPackage name="Package2">
<NuSpecFilePath>Package2.nuspec</NuSpecFilePath>
<BasePath>NuGetPrePackage_Package2</BasePath>
<InvokePowerShell>True</InvokePowerShell>
<PowerShellScriptPath>PrePackage_Package2.ps1</PowerShellScriptPath>
<InvokePush>True</InvokePush>
<OutputDirectory>NuGetPackage</OutputDirectory>
<PushDestination>\\MYFeedLoc\NugetFeed</PushDestination>
<Version>1.0.J.B</Version>
</NuGetterPackage>
</NuGetterPackages>
源控制下我有packages.xml文件將,然後每NuGet包PowerShell的文件和文件nuspec。
Nuspec文件看起來像這樣
<?xml version="1.0"?>
<package >
<metadata>
<id>Package1</id>
<version>$version$</version>
<title>Package1</title>
<authors>Package1 Author</authors>
<owners>Package1 Owner</owners>
<iconUrl>http://Iconserver/nextlogo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Description of Contents</description>
<releaseNotes>First release of the package.</releaseNotes>
<copyright>Copyright 2014</copyright>
<tags>Space Seperated Tags</tags>
<dependencies>
<dependency id="AnyLatestDependencyIMayHAve" version=""/>
<dependency id="AFixedDependencyIMayHAve" version="[1.0.0]"/>
</dependencies>
</metadata>
</package>
然後一個PowerShell文件,只是會在Packages.xml的BasePathDeclaration內的文件夾結構,這是同一個文件上NuGetter現場如圖
我已經在我的blog
這就是應該看起來的樣子。謝謝 :)。但爲什麼你爲每個項目指定一個nuspec文件?這是如何運作的?據我所知,這些文件是在構建包之前創建的?! – 2014-08-29 14:13:00
擴大了答案。一切都在手前創建。構建運行。創建'BasePath'文件夾,powershell腳本將在那裏創建所需的結構,然後將包dll複製到該結構中。然後,NuGet針對該結構運行以創建該包 – 2014-08-29 14:40:41
中添加了完整說明您是否已檢查ALM Rangers的「TFS版本控制指南 - 使用NuGet進行依賴管理」? – 2014-08-29 14:40:34