none
如何合並方案 RRS feed

  • 問題

  • 我當初開了一個方案, 寫了一個類別, 想說未來其它程式會用到可以重覆使用!

    接著, 我開啟了另一個新的方案, 在其中的一個專案引用這個類別, 應該是使用"加入現有項目"這個功能吧? 我不太確定! 這個被引用的類別, 在方案總管上, 不同於其它類別, 有著一個"左下右上的箭頭"符號!

    在使用上沒有任問題, 我在這個方案中修改這個類別時, 它也會直接修改實體的檔案!

    請問:

    1. 我現在想把它直接合並到這個方案來, 讓它的檔案直接就在我這個方案的底下, 該如何做呢?

    2. 在當前方案的Release的目錄之下並未看到該類別的dll, 而是在該類別的方案目錄下有看到它! 那, 我的程式會引用到這麼遠的地方? 或是它直接並入的 exe 執行檔之中了?

    謝謝!

    2019年12月23日 下午 12:33

解答

  • 關於所述 {但它實體檔案位置並不在這個方案之中! 怎麼做可以直接並進來呢}
    在 [加入] [加入現有項目] 時, 選擇檔案後, [加入]按鈕有兩項選擇:
    [加入(A)]: 將檔案複製一份到本專案中.
    [加入作為連結(L)]: 不會複製一份, 共用同一個檔案. 您的附圖看起來是這一種.

    關於所述 {它不會有 dll 檔}
    [應用程式專案] 建置後是 exe.
    [類別庫專案] 建置後是 dll.
    如果只是將類別庫專案裡面的 cs 檔案加入到應用程式專案中, 他只是[應用程式專案]裡面的一個類別, 建置還是 exe, 不會產生 dll.
    如果希望建置方案時同時產生 exe 和 dll, 其中一種方式就是上面說的:
    將 [類別庫專案] 加入到 [應用程式專案] 的 [解決方案中], 而不是將 cs 檔案加入到 [應用程式專案]中.


    Ader

    • 已標示為解答 GaryChiang 2019年12月24日 上午 03:36
    2019年12月24日 上午 03:20
  • 那就是從 [方案總管] 與 [檔案總管] 的角度(邏輯與實體)不同了...
    您應該是想用 [檔案總管](實體) 備份一個(方案)資料夾, 裡面要包含類別庫專案子資料夾與應用程式專案子資料夾.
    那就和 [方案總管] 沒絕對關聯.

    或許可參考:
    1. 如果已將 類別庫專案 加入 方案 的話, 先將其從方案移除:
    [方案總管] 中的類別庫專案按右鍵, 移除. (只會從方案與專案參考移除, 不會刪除檔案)

    2. 然後用 [檔案總管] 搬移專案資料夾, 例如集中到單一資料夾內.

    3. 最後再於 [方案總管] 加入類別庫專案.

    僅供參考.

    (我通常不會這樣做, 因為類別庫專案通常會給其他多個專案參考, 只會與測試用的專案放一起, 很少會將它的檔案放在某特定單一方案資料夾內, 除非沒有其他專案會引用它... [檔案總管] 與 [方案總管] 的觀點不同)


    Ader

    • 已標示為解答 GaryChiang 2019年12月24日 下午 01:12
    2019年12月24日 上午 08:56

所有回覆

  • 加入現有項目只是檔案,你應該新增專案進來。

    一個解決方案可以有多個專案,可以多個解決方案共用多個專案,我個人習慣會開一個解決方案放測試片段,一個正常解決方案,一個含安裝的解決方案。

    引用的話最好跟執行檔同目錄,你引用專案進來時,就會自動在編譯目的地產生 dll / exe ,但要記得設定起始專案跟編譯順序。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年12月23日 下午 03:57
  • 看起來您的作法與目的不同(?)
    從描述結果看起來是將類別庫方案的某個程式碼"檔案"加入到主應用程式方案中.
    而目的應該是想將類別庫方案的"專案"加入到主應用程式方案,
    若是的話, 不應該所述的 "加入現有項目", 而是應該:
    在主應用程式的方案總管中, 在 "解決方案" (不是專案唷) 按滑鼠右鍵, [加入] [現有專案], 選擇類別庫方案中的專案檔 (*.csproj 或是 *.vbproj).
    這樣一個方案裡面就包含兩個專案,
    然後在主應用程式"專案"的[參考] [加入參考], 在參考管理員左邊選 [專案], 右邊就能選前面加入到方案中的類別庫專案.


    Ader

    2019年12月23日 下午 04:12
  • 如果要讓類別能夠重覆使用, 建議將類別放在[類別庫]型態的專案中, 將[類別庫]專案建置成DLL後就可以供其他專案[加入參考], 然後叫用類別的功能

    2019年12月24日 上午 12:51
  • 謝謝各位前輩的指教!

    當初是因為希望可以重覆使用, 才開啟方案, 單獨寫這個class, 但目前是覺得管理上太麻煩了, 而想要把它並進來! 另外, 也是怕一段時間之後忘了這個類別放到那裏去? 所以, 才又想把它合在一起, 那就不會丟了!

    目前這個類別在我的方案中可以看到, 如黃色的方格所示, 但它實體檔案位置並不在這個方案之中! 怎麼做可以直接並進來呢?

    另外, 我所參考的類別, 在編譯完都有相對映的dll檔, 如下面的 "RefressClass.dll", 而 "dataMonitor.cs" 並非使用參考的方式引入, 所以, 它不會有 dll 檔, 是這樣嗎? 因為我只能在它的方案檔之下找到它編譯完的 dll 檔! 那程式執行時, 它是要到那裏去連結這個 dll 檔呢? 

    謝謝!

    2019年12月24日 上午 02:06
  • 關於所述 {但它實體檔案位置並不在這個方案之中! 怎麼做可以直接並進來呢}
    在 [加入] [加入現有項目] 時, 選擇檔案後, [加入]按鈕有兩項選擇:
    [加入(A)]: 將檔案複製一份到本專案中.
    [加入作為連結(L)]: 不會複製一份, 共用同一個檔案. 您的附圖看起來是這一種.

    關於所述 {它不會有 dll 檔}
    [應用程式專案] 建置後是 exe.
    [類別庫專案] 建置後是 dll.
    如果只是將類別庫專案裡面的 cs 檔案加入到應用程式專案中, 他只是[應用程式專案]裡面的一個類別, 建置還是 exe, 不會產生 dll.
    如果希望建置方案時同時產生 exe 和 dll, 其中一種方式就是上面說的:
    將 [類別庫專案] 加入到 [應用程式專案] 的 [解決方案中], 而不是將 cs 檔案加入到 [應用程式專案]中.


    Ader

    • 已標示為解答 GaryChiang 2019年12月24日 上午 03:36
    2019年12月24日 上午 03:20
  • 剛剛截圖做了一遍, 供參考:

    解決方案, 加入, 現有專案.

    選擇類別庫專案 .csproj

    應用程式專案, 參考, 加入參考,

    選擇剛剛加到方案的類別庫,

    建置方案時就會依序建置類別庫專案(.dll)與應用程式專案(.exe)


    Ader

    2019年12月24日 上午 03:51
  • Ader 大! 

    感謝你這麼細心的指導! 

    這個方法, 我之前也試過, 但, 這個加入的專案, 它的實際位置, 依然在它原本的位置! 

    我嘗試要去修改, 它是無法被修改的!

    回到最基本的原因, 我想要備份整個方案時, 我怕會忘了備份這個方案的位置! 到時, 整個方案就少了一部份!

    謝謝!

    2019年12月24日 上午 07:16
  • 那就是從 [方案總管] 與 [檔案總管] 的角度(邏輯與實體)不同了...
    您應該是想用 [檔案總管](實體) 備份一個(方案)資料夾, 裡面要包含類別庫專案子資料夾與應用程式專案子資料夾.
    那就和 [方案總管] 沒絕對關聯.

    或許可參考:
    1. 如果已將 類別庫專案 加入 方案 的話, 先將其從方案移除:
    [方案總管] 中的類別庫專案按右鍵, 移除. (只會從方案與專案參考移除, 不會刪除檔案)

    2. 然後用 [檔案總管] 搬移專案資料夾, 例如集中到單一資料夾內.

    3. 最後再於 [方案總管] 加入類別庫專案.

    僅供參考.

    (我通常不會這樣做, 因為類別庫專案通常會給其他多個專案參考, 只會與測試用的專案放一起, 很少會將它的檔案放在某特定單一方案資料夾內, 除非沒有其他專案會引用它... [檔案總管] 與 [方案總管] 的觀點不同)


    Ader

    • 已標示為解答 GaryChiang 2019年12月24日 下午 01:12
    2019年12月24日 上午 08:56
  • 在方案加入專案,專案會是原先的項目進行共用。

    在專案加入項目,會將檔案複製到目前的專案。

    在專案如果要參照原先項目,多專案共用時,要直接修改 .xxproj 檔案。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年12月24日 下午 03:16