Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • Primer 使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • Code Block 中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • 在 Dynamo 中撰寫程式碼
    • Code Block 和 DesignScript
      • 什麼是 Code Block
      • DesignScript 語法
      • 速寫
      • 函數
    • 使用 DesignScript 的幾何圖形
      • DesignScript 幾何圖形基礎知識
      • 幾何基本型
      • 向量數學
      • 曲線:內插和控制點
      • 平移、旋轉和其他轉換
      • 曲面:內插、控制點、斷面混成、迴轉
      • 幾何參數化
      • 交集和修剪
      • 幾何布林運算
      • Python 點產生器
    • Python
      • Python 節點
      • Python 和 Revit
      • 設定您自己的 Python 樣板
    • 語言變更
  • 最佳實踐
    • 圖表策略
    • 指令碼撰寫策略
    • 指令碼撰寫參考
    • 管理您的程式
    • 在 Dynamo 中有效率地處理大型資料集
  • 範例工作流程
    • 入門工作流程
      • 參數式花瓶
      • 牽引點
    • 概念索引
  • 開發人員手冊
    • 從原始碼建置 Dynamo
      • 從原始碼建置 DynamoRevit
      • 管理和更新 Dynamo 中的相依性
    • 為 Dynamo 開發
      • 入門
      • Zero-Touch 案例研究 - 網格節點
      • 在 Zero-Touch 節點中執行 Python 指令碼 (C#)
      • 深入瞭解 Zero-Touch
      • 進階 Dynamo 節點自訂
      • 在 Dynamo 套件中使用 COM (互通性) 類型
      • NodeModel 案例研究 - 自訂使用者介面
      • 針對 Dynamo 2.x 更新您的套件和 Dynamo 資源庫
      • 針對 Dynamo 3.x 更新套件與 Dynamo 資料庫
      • 延伸
      • 定義 Dynamo 2.0+ 的自訂套件組織
      • Dynamo 指令行介面
      • Dynamo 整合
      • 為 Dynamo for Revit 開發
      • 發佈套件
      • 從 Visual Studio 建置套件
      • 將延伸當作套件
    • 提取請求
    • 測試預期結果
    • 範例
  • 附錄
    • 常見問題
    • 視覺程式設計和 Dynamo
    • 資源
    • 發行說明
    • 有用的套件
    • 範例檔案
    • 主體程式整合對應表
    • 下載 PDF
    • Dynamo 鍵盤快速鍵
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. 開發人員手冊
  2. 為 Dynamo 開發

從 Visual Studio 建置套件

Previous發佈套件Next將延伸當作套件

Last updated 1 month ago

如果您正在開發要發佈為 Dynamo 套件的組合,可以將專案規劃為群組所有必要資產,並將這些資產放在與套件相容的目錄結構中。這可讓專案以套件方式進行快速測試,並模擬使用者的體驗。

如何直接建置到套件資料夾

有兩種方法可以在 Visual Studio 中建置套件:

  • 透過「專案設定」對話方塊,使用 xcopy 或 Python 指令碼複製必要檔案,加入建置後事件

  • 在 .csproj 檔案中使用「AfterBuild」建置目標,來建立檔案和目錄複製工作

「AfterBuild」是這些類型作業 (以及本指南中介紹的作業) 的偏好方法,因為它不依賴在建置電腦上可能無法使用的檔案複製。

使用 AfterBuild 方法複製套件檔案

在儲存庫中設定目錄結構,讓原始碼檔案與套件檔案分開。使用 CustomNodeModel 案例研究,將 Visual Studio 專案及所有關聯的檔案放到新的 src 資料夾中。您將會在此資料夾中儲存專案產生的所有套件。資料夾結構現在應如下所示:

CustomNodeModel
> src
  > CustomNodeModel
  > CustomNodeModelFunction
  > packages
  > CustomNodeModel.sln
  1. 將專案檔移到新的 src 資料夾

由於原始碼檔案位於不同的資料夾,因此請在 Visual Studio 的 CustomNodeModel.csproj 檔案加入 AfterBuild 目標。這會將必要的檔案複製到新的套件資料夾中。在文字編輯器 (我們使用 Atom) 中開啟 CustomNodeModel.csproj 檔案,在 </Project> 結束標籤之前放置建置目標。此 AfterBuild 目標會將所有 .dll、.pbd、.xml 和 .config 檔案複製到新的 bin 資料夾中,並建立 dyf 和 extra 資料夾。

  <Target Name="AfterBuild">
    <ItemGroup>
      <Dlls Include="$(OutDir)*.dll" />
      <Pdbs Include="$(OutDir)*.pdb" />
      <Xmls Include="$(OutDir)*.xml" />
      <Configs Include="$(OutDir)*.config" />
    </ItemGroup>
    <Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Pdbs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Xmls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Configs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\dyf" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />
  </Target>

我們需要確保目標已加到 CustomNodeModel.csproj 檔案 (而不是另一個專案檔) 中,而且專案沒有任何既有的「建置後」設定。

  1. 在 </Project> 結束標籤前放置 AfterBuild 目標。

<ItemGroup> 區段中定義了許多變數來表示特定檔案類型。例如,Dll 變數表示輸出目錄中其副檔名為 .dll 的所有檔案。

<ItemGroup>
  <Dlls Include="$(OutDir)*.dll" />
</ItemGroup>

Copy 工作是將所有 .dll 檔案複製到目錄,具體來說是要建置到的套件資料夾。

<Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />

Dynamo 套件通常會有 dyf 和 extra 資料夾,分別給 Dynamo 自訂節點和其他資產 (例如影像) 使用。若要建立這些資料夾,我們需要使用 MakeDir 工作。如果資料夾不存在,此工作會建立一個。您可以手動將檔案加到此資料夾中。

<MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />

如果您建置專案,現在專案資料夾在先前建立的 src 資料夾旁邊應該會有一個 packages 資料夾。packages 目錄內有一個資料夾,其中包含套件所需的所有內容。我們也需要將 pkg.json 檔案複製到套件資料夾,讓 Dynamo 知道要載入套件。

  1. AfterBuild 目標建立的新套件資料夾

  2. 專案既有的 src 資料夾

  3. 從 AfterBuild 目標建立的 dyf 和 extra 資料夾

  4. 手動複製 pkg.json 檔案。

現在,您可以使用 Dynamo 的 Package Manager 發佈套件,或直接將套件複製到 Dynamo 的套件目錄:<user>\AppData\Roaming\Dynamo\1.3\packages。

移動專案檔
放置 AfterBuild 目標
複製檔案