![](/img/trans.png)
[英]Referencing .NET Standard csproj project from .NET Framework traditional project
[英]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.dll
和System.Buffers.dll
等),這是我沒想到的。 但也許這是一件好事。 它們似乎確實是依賴關系,而不是直接依賴關系。 我會看看結果如何。
如果結果沒問題,我唯一的願望就是在項目設置中更突出地顯示該指令(作為一個簡單的復選框,也許?)這樣我就不必在網上尋找它了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.