[英]NuGet pack for TFS Continuous Integration
我正在努力使我們的TFS Build流程從我們的解決方案項目中生成NuGet包。 我們的目標是創建一個私有包源,因此所有其他內部產品可以使用NuGet下載/更新框架。
到目前為止,我們已經運行了構建過程(很長一段時間)並對我們的庫進行了版本控制,唯一剩下的就是“ nuget pack ”所有項目。
到目前為止我嘗試了什么:
所有這些似乎都有效,但所有這些似乎都失敗了我實際需要它們成功的步驟。
我通過上述步驟實際得到的結果:
列出沒有依賴¹, 沒有列出參考²;
沒有列出依賴關系¹, 沒有列出引用²,目錄中的所有dll都打包在同一個.nupkg上(whitout使用-IncludeReferencedProjects);
(目前為止最好的)列出了一些依賴項¹, 沒有列出引用,只有實際的項目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文件的依賴項。
重要信息:
我需要的:
我研究過的類似問題:
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.