3

我們使用Visual Studio編寫和維護本機Windows應用程序。我們正在研究使用NuGet來處理我們的依賴關係,它由本地靜態庫組成。有沒有辦法支持NugGet和本地庫的快照?

經過一番研究,我設法使用NuGet,package.config和CoApp PowerShell腳本創建並使用NuGet包,並在其中包含本機庫。我們現在面臨的問題是我們需要有快照支持。

但NuGet 3支持的翻轉PreRelease機制(帶*版本翻轉)看起來很好,但它似乎只能用於project.json而不能用於package.config。但是,Project.json似乎不適用於本地軟件包,因爲它們沒有安裝在本地解決方案文件夾中,因此構建無法找到標題和庫。

的問題歸結爲:

  • 是否有使用project.json和的NuGet 3原生靜態庫的方法嗎?
  • 如果沒有,那麼,有什麼替代方案支持這種用例呢? (用例是本機非託管Windows靜態庫的構建時依賴關係分佈)。

編輯:

最後,我們決定使用Maven依賴管理以來的NuGet似乎並不支持我們的用例。我在兩週前提交了一個問題,但沒有收到任何回覆。但是,如果我們決定強迫NuGet進入我們的用例,Wendy提出的解決方案可能會成爲一種方式,所以我接受了它。

回答

1

有兩種方法可以將內容文件添加到使用project.json文件的項目中。一個是「contentFiles」節點,另一個是nuspec文件中的「files」節點。詳細步驟請參考:

http://blog.nuget.org/20160126/nuget-contentFiles-demystified.html

但請注意,這些方式只支持UWP和便攜式類庫。

此功能僅適用於將安裝到使用project.json文件管理的項目的軟件包。 目前只有兩個項目類型由project.json管理。

1.UWP應用

2.Portable類庫

的contentFiles選項不可用於其他項目類型

如果您使用的是.NET的核心應用程序或其他類型的項目使用project.json時,目前不支持nuget包中的內容文件添加到項目中。

+0

感謝您的回答。聽起來很有希望。不幸的是,CoApp工具的使用使我們能夠抽象出不同的二進制文件用於不同配置的問題,這實際上會使其複雜化。但它可能是有用的。 此外,這將使我們手動設置包含和鏈接器位置,這是由CoApp生成的包通過.targets文件自動完成的。 – dhcarmona

+0

我發現靜態庫不會被添加到直接使用project.json文件的項目中,但它們被列在project.lock.json文件中。你可以在這個文件中搜索它們。 –

+0

根據yishaigalatzer在這個問題上的回覆,它只支持在當前版本的project.json中:https://github.com/NuGet/Home/issues/1891但是下面的線程提供了一種替代方法:http:// stackoverflow .COM /問題/ 26835197 /的NuGet-緩存和版本控制問題 –

相關問題