実行環境
項目 | 説明 |
---|---|
OS | Windows11 |
Visual Studio | 2019 or 2022 |
.NET Framework | 4.7.2 |
ソースコードのダウンロード
LiteDB.StudioのソースコードとLiteDBのソースコードをGithubからダウンロードします. LiteDB.StudioのビルドにLiteDBが必要になります.
LiteDB.Studioのフォルダを見るとLiteDBという空フォルダがありますが、ここにLiteDBを配置します. LiteDB/LiteDBさえあれば十分ですが、全てのフォルダをコピーしても問題ありません.
ソリューションのビルド-その1-
LiteDB.Studio.slnをVisual Studio2019以降で開きます. この.slnファイルを開くと以下のような記述があります. このことからもLiteDB.StudioのビルドにはLiteDBさえあれば十分であることが分かります.
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LiteDB.Studio", "LiteDB.Studio\LiteDB.Studio.csproj", "{0002E0FF-C91F-4B8B-B29B-2A477E184408}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LiteDB", "LiteDB\LiteDB\LiteDB.csproj", "{70E32FF1-6E08-4BF0-9C99-33E1F3711DD7}" EndProject
Visual Studioからビルドすると、以下のようなエラーが出ます.
ファイル Forms\MainForm.resx を処理できませんでした。インターネットまたは制限付きゾーン内にあるか、ファイルに Web のマークがあるためです。これらのファイルを処理するには、Web のマークを削除してください。 LiteDB.Studio
これはインターネットから落としてきたソースファイルをビルドしようとすると出るセキュリティ上のエラーだそうです. エラーが出ているファイルのプロパティからセキュリティを許可するのチェックボックスにチェックを入れVisual Studioを開きなおすとビルドが出来るようになります.
改めてビルドすると以下のようなエラーが出ます.
型または名前空間の名前 'Newtonsoft' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
どうやらNewtonsoftというライブラリが必要なようです. LiteDB自体は依存する外部ライブラリはありませんが、LiteDB.Studioは外部ライブラリが必要なようです.
Newtonsoftのインストール
NugetからNewtonsoft.Jsonをインストールするか、ソースコードに付属するNewtonsoft.Jsonの参照設定をします. 今回は後者の方法をとります. ソリューションエクスプローラーのLiteDB.Studioプロジェクトの参照を右クリック->参照の追加をクリックしてNewtonsoft.Json.dllにチェックを入れて参照を追加します.
ソリューションのビルド-その2-
再びビルドをするとビルドに成功しました.
Visual Studio 2019以前でもビルドはできるか
Visual Studio 2017でソリューションファイルを開くと次のようなエラーメッセージが表示されます.
The current .NET SDK does not support targetting .NET Standard 2.0. Either target .NET Standard 1.6 or lower, or use a version of the .NET SDK that supports .NET Standard 2.0.
.NET Standardというのは仕様の種類であって具体的な実装はなんでもよいみたいです.
LiteDB.Studioは.NET Standard 2.0 の実装を必要としており、Microsoftによると.NET Framework 4.6.1以上はその要件を満たすようですが、Visual Studio 2019よりも前のバージョン、例えばVisual Studio 2017では結局のところ対応していないみたいです. Visual Studio2015でもNuGetを新しくすれば.NET Standard 2.0を使えなくはないようですが、そこまでするならVisual Studio 2019を使うか、そもそもLiteDB.Studioをあきらめた方がよいかもです.