簡體   English   中英

c# - Revit api - 多版本 plugin.csproj 文件

[英]c# - Revit api - multi version plugin .csproj file

我正在嘗試為 Revit 創建一個簡單的多版本hello World插件,我發現了這篇文章,我正在努力跟進。 但是,我並沒有走得太遠。 我不太熟悉 .csproj 文件的工作原理。 我之前為個別 Revit 創建了插件,但沒有為多個版本創建插件。

這是下面的 my.csProj 代碼。 我試圖從小處着手,只處理 .net 框架 4.5.2,即 Revit 2018。您還會在底部找到我的項目屬性的片段。 不再有Start External Application:所以我不知道如何通過 Revit 對其進行調試。

感謝任何和所有幫助/指導。

使用下面的 current.csproj 代碼,我得到了這個彈出錯誤:

在此處輸入圖像描述

.csproj

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFrameworks>net452<!--;net46;net47--></TargetFrameworks>
        <Configurations>Debug;Release</Configurations>
        <!--<Platforms>x64</Platforms>-->
        <OutputPath>bin\Debug\</OutputPath>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Any CPU' ">      
        <DefineConstants>DEBUG</DefineConstants>
        <Optimize>false</Optimize>
        <OutputPath>bin\Debug\</OutputPath>

        <DebugType>full</DebugType>
        <DebugSymbols>true</DebugSymbols>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)'=='Release'">
        <PlatformTarget>x64</PlatformTarget>
        <DebugType>none</DebugType>
        <DebugSymbols>false</DebugSymbols>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(TargetFramework)' == 'net452' ">
        <DefineConstants>$(DefineConstants);REVIT2018</DefineConstants>
        <!--<AssemblyName>helloWorld</AssemblyName>-->
    </PropertyGroup>
    

    <ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
        <!--<Reference Include="AdWindows">
            <HintPath>......\2018\AdWindows.dll</HintPath>
            <EmbedInteropTypes>false</EmbedInteropTypes>
            <Private>false</Private>
        </Reference>-->
        <Reference Include="RevitAPI">
            <HintPath>C:\Program Files\Autodesk\Revit 2018\RevitAPI.dll</HintPath>          
            <EmbedInteropTypes>false</EmbedInteropTypes>
            <Private>false</Private>
        </Reference>
        <Reference Include="RevitAPIUI">
            <HintPath>C:\Program Files\Autodesk\Revit 2018\RevitAPIUI.dll</HintPath>
            <EmbedInteropTypes>false</EmbedInteropTypes>
            <Private>false</Private>
        </Reference>
    </ItemGroup>

    <ItemGroup>
      <Reference Include="PresentationCore" />
      <Reference Include="System.Windows.Forms" />
    </ItemGroup>
</Project>

項目屬性片段在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

感謝 Ehsan 分享他的 Github 鏈接。 我能夠弄清楚。

我用程序集名稱將這兩行添加到我的屬性組中。

<TargetFrameworkProfile />
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>

然后在下面將它們添加到單獨的屬性組中,這似乎允許我在不同版本中運行它們。 到目前為止,我只測試了 2018 年和 2019 年,但看起來很有希望。

<PropertyGroup Condition="$(Configuration.Contains('2018'))">
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <RevitVersion>2018</RevitVersion>
  </PropertyGroup>
  <PropertyGroup Condition="$(Configuration.Contains('2019'))">
    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
    <RevitVersion>2019</RevitVersion>
  </PropertyGroup>
  <PropertyGroup Condition="$(Configuration.Contains('2020'))">
    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
    <RevitVersion>2020</RevitVersion>
  </PropertyGroup>
  <PropertyGroup Condition="$(Configuration.Contains('2021'))">
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <RevitVersion>2021</RevitVersion>
  </PropertyGroup>

感謝您的帖子,我了解了有關多版本插件的一些知識。 現在,對於直接問題,您可以通過在啟動調試過程時啟動 Revit 來調試 class 庫。 設置如下:

  1. 將您的項目設置為啟動項目(在“解決方案探索”面板上右鍵單擊項目 => 設置為啟動項目),這樣它將成為調試時運行的第一個項目

  2. 打開“項目屬性”選項卡,select“調試”

  3. 從調試的“開始操作”中,選擇“啟動外部程序”。 然后單擊“瀏覽”按鈕找到 Revit 的可執行文件 select。 默認情況下,它應該位於:

    C:\Program Files\Autodesk\your_version_of_revit

  4. 保存過程,構建項目並按 F5(或您為調試設置的任何鍵)

這有點晚了,因為你已經解決了你的問題,但希望它能在類似的情況下有所幫助。

暫無
暫無

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

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