この記事はRhino.Computeのセットアップからサーバー起動までの手順を詳しく説明しています。
必要な環境
- Rhino 8 と Rhino.Compute
- .NET 8 SDK
- Visual Studio または Visual Studio Code
- 基本的な C# と .NET の知識
Rhino.Compute をダウンロード
Rhino.Computeは、Rhinoの計算機能をWebアプリケーションで利用するためのサーバーサイドコンポーネントです。まずは、Rhino.Computeのソースコードを取得しましょう。
GitHub リポジトリにアクセス
Rhino.Computeのソースコードは、GitHubの公式リポジトリからダウンロードできます。以下のリンクからリポジトリを開きます。 Rhino.Compute GitHub リポジトリ
リポジトリのクローン
Gitを使ってリポジトリをローカルにクローンします。以下のコマンドをターミナルで実行します
git clone https://github.com/mcneel/compute.rhino3d.git
これにより、compute.rhino3d フォルダがローカルに作成され、そこにソースコードがダウンロードされます。
プロジェクトディレクトリへ移動
クローンしたフォルダに移動し、作業を開始します。
cd compute.rhino3d
Rhino.Compute を .NET 8 で設定して起動
今回は、Rhino.Compute を .NET 8 でセットアップし、ローカルサーバーを立ち上げる方法について詳しく解説します。この手順を通して、Rhino 3D の計算をウェブ経由で処理できるようになります。
.NET 8 SDK のインストール
まず、最新の .NET 8 SDK をインストールする必要があります。公式サイト(dotnet.microsoft.com) からダウンロードできます。
インストール後、以下のコマンドをターミナルで実行して、バージョンが正しくインストールされているか確認しましょう。
dotnet --version
結果として 8.x.x と表示されれば、インストールは成功しています。
rhino.compute.csprojファイルの修正
問題点
RuntimeFrameworkVersionの不一致: 現在、RuntimeFrameworkVersionが7.0.0になっていますが、ターゲットフレームワークはnet8.0です。これが原因でランタイムの不一致エラーが発生する可能性があります。Microsoft.AspNetCore.AppのFrameworkReference:Microsoft.AspNetCore.Appの参照は、.NET 8.0で使用されるべきですが、.NET 8.0の場合、この参照は暗黙的に含まれているため、プロジェクトファイルから削除しても問題ない場合があります。
修正案
RuntimeFrameworkVersionの修正:.NET 8.0のターゲットフレームワークに合わせて、RuntimeFrameworkVersionを削除または8.0.11などに設定することをお勧めします。Microsoft.AspNetCore.Appの削除:.NET 8.0では、このフレームワーク参照が不要な場合があるため、削除することで警告が解消されることがあります。
修正後の rhino.compute.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AssemblyName>rhino.compute</AssemblyName>
<OutputType>Exe</OutputType>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>True</SelfContained>
<PublishTrimmed>False</PublishTrimmed>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ApplicationIcon>favicon.ico</ApplicationIcon>
<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<OutputPath>..\bin\Debug\$(AssemblyName)</OutputPath>
<DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<OutputPath>..\bin\Release\$(AssemblyName)</OutputPath>
<DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
<PublishDir>..\dist\$(AssemblyName)</PublishDir>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Carter" Version="7.0.0" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
<PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
<PackageReference Include="Serilog.Expressions" Version="3.4.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.4.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<!-- Microsoft.AspNetCore.App の参照を削除 -->
</ItemGroup>
</Project>
必要なパッケージをインストールします。
以下のコマンドを実行して、プロジェクトの依存関係を復元します。
dotnet restore
これにより、プロジェクトで使用する必要なパッケージが自動的にインストールされます。
プロジェクトのビルド
依存関係の復元が完了したら、次にプロジェクトをビルドします。
dotnet build
ビルドが成功すると、以下のようなメッセージが表示されます。
ビルドに成功しました。
アプリケーションの実行
ビルドが完了したら、以下のコマンドでアプリケーションを実行します。
dotnet run
実行後、次のようなログが表示されるはずです。
Rhino compute started at 12/12/2024 7:17:15 AM
Initializing reverse proxy at 12/12/2024 7:17:15 AM
Now listening on: http://localhost:6500
Application started. Press Ctrl+C to shut down.
ここで、http://localhost:6500 にアクセスすることで、ローカルでホストされている Rhino.Compute サーバーに接続できます。
ブラウザで確認
ブラウザを開き、http://localhost:6500 にアクセスして、サーバーが正常に動作していることを確認しましょう。正常に動作していれば、Rhino.Compute がウェブアプリケーションとして正しく機能していることが確認できます。

注意点
- バージョンの整合性: .NET SDK やランタイム、Rhino などのバージョンが一致しているか確認することが重要です。
- エラーの対応: 実行時にエラーが発生した場合、ログをチェックして、問題の原因を特定しましょう。特に、依存関係の不整合やバージョンの不一致が原因でエラーが発生することがあります。
まとめ
今回は、Rhino.Compute を .NET 8 上でセットアップし、ローカルサーバーを立ち上げる方法を紹介しました。これで、Rhino 3D の計算をウェブアプリケーションとして利用できる環境が整いました。これをベースに、さらにカスタマイズを加えて、独自の Rhino 3D 計算処理を提供するウェブアプリケーションを開発できます。