簡體   English   中英

Go 在 Visual Studio 2019 中的多解決方案環境中獲取資源

[英]Go to source in a multi solution enviroment in Visual Studio 2019

我們有這樣一個場景:

我們有大約 100 個解決方案,每個解決方案包含 10 個項目。 每個解決方案都將其人工制品(即 10 個 dll)復制到一個共享的單個文件夾中,例如C:\code/assemblies 如果我為功能 X 開發一些東西,我會打開 SolutionX。 所有解決方案/項目的來源都在單個Monorepo C:\code中。

在調試過程中,當項目 Y 中實現了方法/類/任何東西時,它會打開相應的文件(這很好)。 因此,必須有可用的信息如何到達源頭。

但是在開發時,我無法導航到實現,例如使用 F12(“轉到定義”),而只能從元數據中獲取簽名。 我希望在調試期間擁有相同的體驗。

所以現在我打開一個 Visual Studio Code,打開包含源代碼的文件夾並執行“搜索文件”。

有更好的想法嗎?

Nb Resharper 不是一個允許的選項。 也不能很好地與 Postsharp 配合使用。

注意,我不知道它是否重要,但除了一個解決方案之外的所有解決方案都啟動一個外部程序(shell),因為除了一個解決方案之外的所有解決方案都只包含 dll。

我在舊項目中做過類似的事情。

您可以將Symbol與 Visual Studio 2019 一起使用。簡單的步驟可以是:

A. 為項目生成符號:

  1. 在解決方案資源管理器中,select 項目。

  2. Select 屬性圖標(或按 Alt+Enter)。

  3. 在側窗格中,選擇Build

  4. 在 Configuration 列表中,選擇DebugRelease

  5. Select高級按鈕。

  6. 在調試信息列表中,選擇完整、僅 Pdb 或可移植。

在此處輸入圖像描述

更多信息請參考:

在 Visual Studio 中設置調試和發布配置

發布符號以進行調試

B. 在 Visual Studio 中使用符號:

  1. 在 Visual Studio 中,打開工具 > 選項 > 調試 > 符號(或調試 > 選項 > 符號)。

  2. 在符號文件 (.pdb) 位置下,

    • 要使用 Microsoft 符號服務器或 NuGet.org 符號服務器,請選中 select 復選框。

    • 要添加新的符號服務器位置,

    Select 工具欄中的 + 符號。 在文本字段中鍵入符號服務器的 URL (http)、網絡共享或本地路徑或符號位置。 語句完成可幫助您找到正確的格式。 工具 - 選項 - 調試 - 符號頁面

在此處輸入圖像描述

更多詳情請參考:

配置符號位置和加載選項

我認為您應該分析項目依賴關系(例如使用https://www.ndepend.com/docs/visual-studio-dependency-graph )並將您的項目集群在較少的解決方案中

編輯:我正在根據您的評論編輯此答案。 我認為您正在尋找兩個用例

  1. 查看引用的二進制文件的源代碼
  2. 導航到源,然后就地編輯它們

實現選項 (1)

在 Visual Studio 2019 中,使用內置的反編譯器來幫助您導航到解決方案之外的代碼。 自 2020 年 5 月起,這是一項實驗性功能。默認情況下,此功能已禁用,您應該啟用它。 啟用后,F12 導航將反編譯並允許您查看源代碼。

在此處輸入圖像描述

另一方面,你越放松編譯,反編譯就越好。 這意味着,您可以關閉優化(如果有)。 這與符號生成選項無關。

如果您使用的是visual studio 2017(或)以下版本,則可以通過Telerik Just Decompile 插件(免費)來實現。 檢查功能在選項卡中查看反編譯代碼

實現選項 (2):

您應該引用源文件而不是二進制文件,因為您不會通過引用二進制文件獲得自然的就地編輯。 無論您選擇哪種解決方案,總會有一些警告。 可以使用 Visual Studio 中的“添加為鏈接”功能來引用源代碼,其中源代碼屬於一個解決方案,並且可以在所有其他解決方案中作為鏈接引用(類似於 windows 快捷方式)。 https://andrewlock.net/including-linked-files-from-outside-the-project-directory-in-asp-net-core/ )。 如果要引用源,則需要刪除二進制引用。

您還必須從架構的角度來決定這將如何改變人們開發和提交代碼的方式。 引用二進制文件的目的是確保不為方便而對其進行編輯,但這完全取決於開發團隊的性質。

結論

從最佳實踐的角度來看,您要么必須引用二進制文件並且不允許編輯它們(或者)您允許源引用並就地編輯。 但這完全取決於您想要實現的目標。

暫無
暫無

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

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