簡體   English   中英

用於TFS持續集成的NuGet包

[英]NuGet pack for TFS Continuous Integration

我正在努力使我們的TFS Build流程從我們的解決方案項目中生成NuGet包。 我們的目標是創建一個私有包源,因此所有其他內部產品可以使用NuGet下載/更新框架。

到目前為止,我們已經運行了構建過程(很長一段時間)並對我們的庫進行了版本控制,唯一剩下的就是“ nuget pack ”所有項目。


到目前為止我嘗試了什么:

  1. nuget spec * .csproj,然后是nuget pack * .nuspec;
  2. nuget spec * .dll,然后是nuget pack * .nuspec;
  3. nuget pack * .csproj直接(沒有.nuspec文件);

所有這些似乎都有效,但所有這些似乎都失敗了我實際需要它們成功的步驟。

我通過上述步驟實際得到的結果:

  1. 列出沒有依賴¹, 沒有列出參考²;

  2. 沒有列出依賴關系¹, 沒有列出引用²,目錄中的所有dll都打包在同一個.nupkg上(whitout使用-IncludeReferencedProjects);

  3. (目前為止最好的)列出了一些依賴項¹, 沒有列出引用,只有實際的項目dll在.nupkg上的lib文件夾中。

¹: 依賴於我的意思是NuGet依賴,來自NuGet的包
²: 參考我的意思是解決方案項目參考。


示例場景:

Solution1.sln
- ProjectA
- ProjectB

ProjectA有ProjectB的項目參考 希望在生成的.nuspec上發生什么:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>ProjectA <- OK</id>
    <version>1.2.0.0 < - OK</version>
    <title>ProjectA <- OK</title>
    <authors>My Company <- OK</authors>
    <owners>My Company <- OK</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Description</description>
    <copyright>OK</copyright>
    <dependencies>
        <dependecy id="ProjectB" Version="1.2.0.0" /> <<<<<<---- NOT HAPPENING!
    </dependencies>
  </metadata>
</package>    

列出了一些nuget依賴項,但不是所有這些依賴項(即使它們位於refeered項目的packages.config中)。 例如:我有一個項目依賴於其他4個NuGet包,只有2個被列為生成的.nuspec文件的依賴項。


重要信息:

  • 每個項目都有自己的packages.config,NuGet構建它的方式;
  • 解決方案文件夾包含packages文件夾,包含所有引用的包;
  • 已經嘗試過Nugetter(XAML打破VS 2012.3和TFS 2012,無法打開它)
  • 已經嘗試過這個 ,也沒有正確地包含依賴關系和引用;
  • 解包還原 (我們需要這樣可避免儲存在TFS的包)。

我需要的:

  • 自動化打包過程以打包每個csproj,包括.nuspec文件上的所有引用和依賴項,因此在安裝它們時將正確加載它們。

我研究過的類似問題:

NuGet:pack命令不包括nuget依賴項
Nuget pack僅包含某些項目的依賴項
為什么包裝時nuget不包括引用的項目?

事實證明這是一個簡單的路徑問題。 由於我是從不同的工作目錄執行命令,因此未正確添加引用和依賴項。

最重要的是,使用-IncludeReferencedProjects是正確添加所需內容所必需的。

之后,使用Powershell的構建過程成功完成,一切都按預期工作=)

pack命令有一個選項,用於包含必須指定的項目引用: http//docs.nuget.org/docs/reference/command-line-reference#Pack_Command_Options

您需要定位csproj文件,我建議您手動創建一個nuspec文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM