Revit 2025 .NET 8 へのアドイン移植

Revit 2025 は、.NET 8 をベースに再構築されております。そのため、Revit 2025 のアドイン開発においても、これまでの .NET Framework ではなく、.NET 8 をターゲットフレームワークに指定する必要があります。

Diagram illustrating the components for custom functionality in Revit, including Visual Studio 2022, Revit 2025 API, Revit 2025, .NET 8, and Windows, with a focus on DLL assembly references.

また、過去バージョンの Revit (.NET Framework4.x ベース)向けに開発されたアドインプロジェクトを Revit 2025 に移植する際、.NET 8 へ移行して再ビルドする必要があります。

今回は、既存の .NET Framework 4.x ベースのプロジェクトを .NET 8 へアップグレードする手順について、ご案内いたします。

Image showcasing the Autodesk Revit logos for versions 2024 and 2025, alongside .NET Framework 4.8 and .NET 8.


Visual Studio 2022 と .NET 8 の入手

.NET 8 コードをビルドするには、Visual Studio 2022 (17.8 以降)が必要です。また、.NET 8 も必要に応じて、インストールする必要がございます。

※Revit 2025 のビルドには、.NET SDK 8.0.100 が使用されています。

※Revit 2025 をインストールすると、.NET 8 Windows Desktop Runtime x64 8.0.0.33101 も併せてインストールされます。


.NET アップグレード アシスタントの入手

Visual Studio プロジェクトを .NET 8 ベースに移行するには、Microsoft が提供している「.NET アップグレード アシスタント」を利用することが出来ます。

.NET アップグレード アシスタントの入手ととインストールについては、.NET アップグレード アシスタントをインストールする方法 で説明されています。

Screenshot of an application management window displaying a list of installed tools, including .NET Upgrade Assistant, ML.NET Model Builder 2022, Live Share 2022, and SQL Server Data Tools - Sql Editor, with installation details and version information.

.NET アップグレード アシスタントがサポートするプロジェクトは、C# と VB のみです。

なお、一部、.NET 8 へ移行出来ない(コードの移植/改変が必要)なものも存在します。それらの概要は、次の記事で紹介されていますので、プロジェクトのアップグレード前に一読されることをお勧めします。


アップグレード手順

  1. C# プロジェクトを新しい SDK スタイルのプロジェクト形式に変換
    • アップグレード前に AssemblyInfo.cs ファイルのバックアップを推奨します。.NET 8 では、アセンブリ情報の一部がプロジェクトファイルに移動しています。
    • 前項を参考に、.NET Upgrade Assistant ツールをインストールし、対象のプロジェクトを選択してアップグレードアシスタントを起動して、ガイドに沿ってアップグレードを実行します。
    • Screenshot of a software interface displaying the solution explorer for a project named 'AdnRevitApiTrainingLabs.' The context menu shows the 'Upgrade' option highlighted.
      Welcome screen for the Upgrade Assistant, featuring options to upgrade a project to a newer .NET version or to upgrade project features without changing the target framework.
    • パッケージ参照を更新します。
      .csproj ファイル内の packages.config を PackageReferences に変換します。これにより、パッケージ管理が簡素化され、新しいプロジェクト形式に合致します。
  2. ターゲット フレームワークの更新
    • .csproj 内の <TargetFrameworkVersion> を目的のターゲット フレームワーク バージョンに更新します
      (例: <TargetFramework>net8.0-windows</TargetFramework>)。
    • WPF アプリケーションの場合
      CSPROJ に <TargetFramework>net8.0-windows</TargetFramework><UseWPF>true</UseWPF> を追加します。
    • Windows フォームを使用するアプリケーションの場合
      CSPROJ に <TargetFramework>net8.0-windows</TargetFramework><UseWindowsForms>true</UseWindowsForms> を追加します。
  3. システム参照の削除
    •   システム参照はデフォルトで利用可能なため、CSPROJ から削除できます。
  4. 非互換なパッケージ、ライブラリ参照、非サポートのコードの対応
    • アドインを .NET 8 に移行する際、.NET Framework 4.8 で作成したアドインが利用しているライブラリや Nuget パッケージも .NET 8 に移行されている必要があります。
    • 非互換なパッケージ、ライブラリ参照、非サポートのコードを修正してください。

コンポーネントのバージョンに関する注意事項

アドインが、下記のコンポーネントを使用している場合、Revit 2025 で使用されているコンポーネントのバージョンと一致させることで、アドインの不安定になることを回避します。

  • CefSharp
    • “cef.redist.x64″ Version=”119.4.3”
    • “cef.redist.x86″ Version=”119.4.3”
    • “CefSharp.Wpf.HwndHost” Version=”119.4.30″
    • “CefSharp.Common.NetCore” Version=”119.4.30″
    • “CefSharp.Wpf.NetCore” Version=”119.1.20″
  • Newtonsoft Json
    • “Newtonsoft.Json” Version=”13.0.1″

一般的な問題への対処法

  • MSB3277 ビルド警告
    • RevitAPI.dll、RevitUIAPI.dll を参照するコードのビルド時

    • 対処:Windowsデスクトップ・フレームワークへの参照を追加:
      <ItemGroup>
          <FrameworkReference Include=”Microsoft.WindowsDesktop.App” />
      </ItemGroup>
  • CA1416 ビルド警告
    • Windows システム機能のみを使用する場合
    • 対処1:AssemblyInfo.cs に次の行を追加:
      [assembly:System.Runtime.Versioning.SupportedOSPlatformAttribute(“windows”)]
    • 対処2:プロジェクトファイルに下記を設定してリビルド
      <GenerateAssemblyInfo>true</GenerateAssemblyInfo>

By Ryuji Ogasawara


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading