簡體   English   中英

從 .NET Standard 項目的 csproj 獲取所有依賴項的列表

[英]Getting a list of all dependencies from a .NET Standard project's csproj

自從我在 Visual Studio 中使用(相對)新的 .NET 標准庫項目類型以來,我在獲取我的項目所需的完整 DLL 文件集時遇到了一些問題。

問題通常僅限於我引用為 NuGet 包的第 3 方庫。 我注意到當我構建它時,這些不會被復制到我的項目的輸出文件夾中。 在經典項目類型中,情況並非如此。

雖然我可以理解此更改為 .NET Standard 項目帶來的整理效果,但我現在面臨一個問題。 有時我絕對需要能夠獲得我的項目所依賴的所有文件的完整列表!

我有幾種不同的情況,我可能出於某種原因需要此列表,但我認為對我來說最重要的是,當我想從csproj本身收集這些文件時,就在它構建之后。 在那里,我有一個自定義的 MSBuild <Target> ,它應該從輸出目錄中獲取所有文件並將它們壓縮在一起以進行分發。 問題是,我缺少來自 NuGet 依賴項的所有文件,因為它們不存在!

我怎樣才能以一般的(即不是特定於項目的)方式解決這個問題?

更新

這個deps.json文件基本上包含了我想要的所有內容,然后是一些。 只需提取相關信息並在本地NuGet緩存中查找文件即可。 但這將涉及編寫一個專門的應用程序並從我的目標中調用它。 在我自己開始寫一個之前......有沒有這樣的東西已經在某個地方了?

我遵循了這個答案,它有點工作。

建議的事情是將以下內容包含到我的 csproj 中:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

我主要擔心的是它還會從框架中輸出一些其他 DLL(例如System.Memory.dllSystem.Buffers.dll等),這是我沒想到的。 但也許這是一件好事。 它們似乎確實是依賴關系,而不是直接依賴關系。 我會看看結果如何。

如果結果沒問題,我唯一的願望就是在項目設置中更突出地顯示該指令(作為一個簡單的復選框,也許?)這樣我就不必在網上尋找它了。

暫無
暫無

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

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