[英]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 庫。 設置如下:
將您的項目設置為啟動項目(在“解決方案探索”面板上右鍵單擊項目 => 設置為啟動項目),這樣它將成為調試時運行的第一個項目
打開“項目屬性”選項卡,select“調試”
從調試的“開始操作”中,選擇“啟動外部程序”。 然后單擊“瀏覽”按鈕找到 Revit 的可執行文件 select。 默認情況下,它應該位於:
C:\Program Files\Autodesk\your_version_of_revit
保存過程,構建項目並按 F5(或您為調試設置的任何鍵)
這有點晚了,因為你已經解決了你的問題,但希望它能在類似的情況下有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.