IronBarcodeでMSIインストーラーを作成する

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcodeでMSIインストーラを作成するには、ソリューションにセットアッププロジェクトを追加し、必要なDLL(onnxruntime.dllIronBarcodeInterop.dllReaderInterop.dll)を含め、配布可能なMSIパッケージを生成するためにプロジェクトをビルドします。

MSI(Microsoft Installer)は、ソフトウェアのインストール、更新、削除を容易にするWindowsのインストールパッケージです。 MSIを使用することで、アプリケーションをインストールするための標準化された方法が提供され、これは特に企業での導入に有益です。 MSI 形式は、ロールバック機能、管理インストールポイント、Windows Installer サービス統合などの高度な機能をサポートします。

IronBarCodeは、既存のアプリケーションにシームレスに統合し、簡単に配布できるMSIに変換するためのツールを提供します。 さまざまな環境にわたって信頼性のあるインストールを保証し、開発者が含めるコンポーネントや除外するコンポーネントを選択することを可能にします。 このライブラリは、複数の BarCode フォーマットをサポートしており、さまざまなビジネスアプリケーションに汎用的に使用できます。

このチュートリアルでは、IronBarcodeの強力なスキャン機能を活用したバーコードアプリケーションの例からMSIファイルを作成する方法を説明します。

クイックスタート:クリックでMSIバーコードを生成および読み取る

IronBarcodeのシンプルなAPIを使用して、最小限のセットアップでMSIバーコードの作成と読み取りを行うことができます。以下のスニペットは、MSIバーコードイメージを書き、それを読み取ることがいかに簡単かを示しています。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronBarcode をインストールします

    PM > Install-Package BarCode

  2. このコード スニペットをコピーして実行します。

    var msiImg = IronBarCode.BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.MSI).SaveAsImage("msi.png");
    var results = IronBarCode.BarcodeReader.Read("msi.png", new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.MSI });
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronBarcode を使い始めましょう
    arrow pointer

今日あなたのプロジェクトでIronBarcodeを無料トライアルで使用開始。

最初のステップ:
green arrow pointer

始める前に必要な前提条件はありますか?

プロジェクトを開始する前に、[Microsoft Visual Studio Installer Projects extension]()をダウンロードしてください。 https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects)をダウンロードしてください。 さらに、プロジェクトにNuGet経由でIronBarcodeがインストールされていることを確認してください。

なぜ Visual Studio Installer Projects Extension が必要なのですか?

この拡張機能は、Visual Studio 2022 で MSI インストーラを作成するために必要なセットアッププロジェクトテンプレートを提供します。この拡張機能により、バージョン 2010 以降の Visual Studio* から削除された配置プロジェクトテンプレートが追加され、開発者は従来の Windows Installer パッケージを作成できるようになります。

どのバージョンの.NET Frameworkをターゲットにすべきですか?

MSI デプロイメントシナリオと最大限の互換性を保つため、Windows Forms App (.NET Framework) を使用してください。 IronBarcodeは、さまざまな.NETプラットフォームをサポートしていますが、.NET Frameworkバージョンは、MSIインストーラが一般的に配置されているWindowsシステムとの幅広い互換性を保証します。

どのように最初の MSI インストーラー プロジェクトを作成しますか?

この例では、Windows Forms App (.NET Framework)プロジェクトを使ってその機能を説明します。 このアプローチは、デスクトップバーコードスキャンアプリケーションに馴染みのあるUIパラダイムを提供します。

どのプロジェクトタイプが MSI インストーラーに最適ですか?

Windows Formsアプリケーションは、MSI展開されたバーコードスキャンアプリケーションを作成するための最も簡単な経路を提供します。 これらのツールは、Windowsネイティブの統合を提供し、.NET Framework以外のランタイム依存を必要としません。

デモ アプリケーションの主なコンポーネントは何ですか?

アプリケーションは、画像から BarCode をスキャンするためのファイルダイアログを開くボタン付きのフォームで構成されています。 このシンプルなインターフェイスは、デプロイの複雑さを最小限に抑えながら、中核となる機能を示しています。 より高度なシナリオについては、PDF から BarCode を読み取る、または async バーコード読み取りを実装することを検討してください。

Windowsフォームにボタンを追加するには?

  • ツールボックスに移動します
  • ボタンを検索します
  • Windowsフォームにドラッグ&ドロップしてボタンを追加します。

フォームに追加するためにすべてのWindowsフォームセクションの下に強調表示されたボタンコントロールを表示するVisual Studioツールボックス

ボタン

コントロールはどこにありますか?

Buttonコントロールは、Visual StudioツールボックスのCommon Controlsセクションにあります。 ツールボックスが表示されていない場合は、[表示] > [ツールボックス]から開くか、Ctrl+Alt+Xキーを押してください。

フォーム上のボタンはどのように配置すればよいですか?

ボタンをフォームの中央に配置するか、ユーザーが自然に主要なアクションを見つけると予想される場所に配置します。 アプリケーション間で一貫したユーザーエクスペリエンスを実現するため、Windows UIガイドラインに従うことを検討してください。

バーコード スキャンを処理するためにボタン コードを編集するにはどうすればよいですか?

ボタンコンポーネントをダブルクリックして、フォームのC#コードにアクセスしてください。 以下は、フォーム・コンポーネントのロジックで、BarCodeを取り込んでスキャンしようとします。 このコードは画像のみをスキャンし、PDFには対応していません。 PDF文書にはReadPdfメソッドを使用してください。 包括的なバーコード読み取りオプションについては、barcode reader settings documentationを参照してください。

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;
using System.Windows.Forms;

namespace MsiInstallerSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
            IronSoftware.Logger.LogFilePath = "Default.log";

            IronBarCode.License.LicenseKey = "IRONBARCODE-MYLICENSE-KEY-1EF01";

            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                openFileDialog.Filter = "Image files (All files (*.*)|*.*";

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        // Load the selected image
                        using (Bitmap bmp = new Bitmap(openFileDialog.FileName))
                        {
                            // Process the image
                            AnyBitmap anyBitmap = AnyBitmap.FromBitmap(bmp);

                            // Configure barcode reader options (customize as needed)
                            var option = new BarcodeReaderOptions
                            {
                                Speed = ReadingSpeed.Detailed,
                                ExpectMultipleBarcodes = true,
                                ScanMode = BarcodeScanMode.Auto,
                            };

                            BarcodeResults result = IronBarCode.BarcodeReader.Read(anyBitmap, option);

                            if (result.Count > 0)
                            {
                                string output = string.Empty;
                                foreach(var barcode in result)
                                {
                                    Console.WriteLine($"Barcode Found: {barcode.Text}");
                                    output += barcode.Text + "\n";
                                }

                                MessageBox.Show($"Detected Barcodes: \n{output}");
                            }
                            else
                            {
                                MessageBox.Show("No Barcode found.");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show($"{ex.Message}");
                    }
                }
            }
        }
    }
}
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;
using System.Windows.Forms;

namespace MsiInstallerSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
            IronSoftware.Logger.LogFilePath = "Default.log";

            IronBarCode.License.LicenseKey = "IRONBARCODE-MYLICENSE-KEY-1EF01";

            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                openFileDialog.Filter = "Image files (All files (*.*)|*.*";

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        // Load the selected image
                        using (Bitmap bmp = new Bitmap(openFileDialog.FileName))
                        {
                            // Process the image
                            AnyBitmap anyBitmap = AnyBitmap.FromBitmap(bmp);

                            // Configure barcode reader options (customize as needed)
                            var option = new BarcodeReaderOptions
                            {
                                Speed = ReadingSpeed.Detailed,
                                ExpectMultipleBarcodes = true,
                                ScanMode = BarcodeScanMode.Auto,
                            };

                            BarcodeResults result = IronBarCode.BarcodeReader.Read(anyBitmap, option);

                            if (result.Count > 0)
                            {
                                string output = string.Empty;
                                foreach(var barcode in result)
                                {
                                    Console.WriteLine($"Barcode Found: {barcode.Text}");
                                    output += barcode.Text + "\n";
                                }

                                MessageBox.Show($"Detected Barcodes: \n{output}");
                            }
                            else
                            {
                                MessageBox.Show("No Barcode found.");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show($"{ex.Message}");
                    }
                }
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

バーコード読み取りロジックの主要コンポーネントは何ですか?

コードは、OpenFileDialogを使用して画像を選択し、BarcodeReaderOptionsを設定して詳細なスキャンを行い、MessageBoxを介して結果を表示します。 読み取り速度のオプションは、パフォーマンス要件に基づいて調整できます。 ExpectMultipleBarcodes設定は、1つの画像から複数のバーコードを読み取ることを可能にします。

本番環境でのエラーはどのように処理すればよいですか?

生の例外の詳細を表示するのではなく、適切なエラーログとユーザーフレンドリーなエラーメッセージを含めること。 BarCodeが認識されないシナリオに対する再試行ロジックを実装し、画質要件に関するガイダンスをユーザーに提供することを検討してください。

このコードで PDF ドキュメントをスキャンできますか?

PDF ドキュメントについては、PDF バーコード抽出を適切に処理するために、BarcodeReader.Read メソッドを BarcodeReader.ReadPdf に置き換えてください。 また、パフォーマンスを最適化するために、PDF固有のバーコードリーダー設定を調べることもできます。

以下は、PDFをサポートするためにコードを修正する方法の例です:

// For PDF documents, use ReadPdf method
if (Path.GetExtension(openFileDialog.FileName).ToLower() == ".pdf")
{
    var pdfResults = BarcodeReader.ReadPdf(openFileDialog.FileName, option);
    // Process PDF results similar to image results
}
// For PDF documents, use ReadPdf method
if (Path.GetExtension(openFileDialog.FileName).ToLower() == ".pdf")
{
    var pdfResults = BarcodeReader.ReadPdf(openFileDialog.FileName, option);
    // Process PDF results similar to image results
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

セットアップ プロジェクトを追加して MSI を作成するにはどうすればよいですか?

フォームとそのコントローラロジックを設定した後、既存のソリューションにセットアッププロジェクトを追加して、MSIインストーラを作成します。 セットアッププロジェクトでは、作成したアプリケーションのインストーラを構築することができます。 このプロセスでは、IronBarcodeの依存関係を含むすべての必要なコンポーネントを単一のデプロイ可能なユニットにパッケージ化します。

ソリューションで右クリックし、追加 > 新しいプロジェクト...に移動します。

セットアップ プロジェクトを作成するための [追加] > [新規プロジェクト] オプションを表示する Visual Studio Solution Explorer コンテキスト メニュー

MSIインストーラーのため、ReleaseモードでMsiInstallerSampleプロジェクトを再度ビルドします。 セットアッププロジェクトで右クリックし、追加 > プロジェクト出力...に移動します。

ソリューションエクスプローラーが表示されている状態で SetupProject の展開オプションを表示する Visual Studio Add Project Output Group ダイアログ

MSIインストーラーがスムーズに動作するために、セットアッププロジェクトに次の3つのファイルを必ず含める必要があります:onnxruntime.dllIronBarcodeInterop.dll、および ReaderInterop.dll。 これらのファイルは、Releaseモードでプロジェクトをビルドすると生成されます:

  • onnxruntime.dllMsiInstallerSampleにあります。
  • IronBarcodeInterop.dll:場所はMsiInstallerSampleです。
  • ReaderInterop.dll:場所はMsiInstallerSampleです。

セットアッププロジェクトに追加するReaderInterop.dllを選択するVisual Studioのファイルダイアログと依存関係を表示するソリューションエクスプローラー

これらのファイルのいずれかが欠けている場合、このトラブルシューティングの記事に記載されているように、次のような例外メッセージが表示されることがあります:MSIインストーラの作成でDLLが見つからない

最後に、セットアッププロジェクトをビルドします。 インストーラーは次の場所に配置されます:MsiInstallerSampleSetupProject</Releaseにあります。

なぜこれらの特定の DLL が必要なのですか?

IronBarcodeは、MLベースのバーコード検出と処理機能をこれらのネイティブライブラリに依存しています。 onnxruntime.dllは機械学習ランタイムを提供し、IronBarcodeInterop.dllとReaderInterop.dllはネイティブのバーコード処理操作を処理します。 これらのコンポーネントは、画像補正フォールト トレランスのような高度な機能を可能にします。

これらの DLL をインクルードし忘れた場合はどうなりますか?

DLL が欠落していると、インストール後にユーザーが BarCode をスキャンしようとしたときに実行時例外が発生します。 アプリケーションがIronBarcodeを正しく初期化できず、FileNotFoundExceptionやDllNotFoundExceptionエラーが発生する可能性があります。

プロジェクトの出力設定を構成するにはどうすればよいですか?

プロジェクトの出力を追加するときに"プライマリ出力"を選択して、メインの実行ファイルとその管理された依存関係を含めます。 これは、すべての.NETアセンブリが含まれていることを保証しますが、上記のネイティブDLLを手動で追加することを忘れないでください。

MSIインストーラーを実行してテストするには?

MSIファイルを使用してアプリケーションをインストールし、すべてがスムーズに動作するようにします。 テストは、インストールとアンインストールの両方のシナリオをカバーし、適切なデプロイメントを検証する必要があります。

インストーラのビルドが完了し、setup.exe とインストーラファイルが含まれる Release フォルダが表示されているVisual Studio。

テスト中に確認すべきことは何ですか?

アプリケーションが正しく起動し、ファイルダイアログを開くことができ、テスト画像から BarCode を正常にスキャンできることを確認します。 包括的な機能を確保するために、さまざまなサポートされているバーコード形式でテストしてください。 また、ライセンスキーアプリケーションがデプロイされた環境で正しく動作することも確認してください。

インストールに関する問題のトラブルシューティングはどうすればよいですか?

Windows Installer のログを有効にして、インストールの失敗やコンポーネントの欠落に関する詳細情報を取得します。 エラーの詳細については Windows イベント ビューアを確認し、一般的なデプロイメントに関する問題については トラブルシューティング ガイドを参照してください。

完全なサンプル プロジェクトはどこからダウンロードできますか?

このガイドの完全なコードをダウンロードできます。これは、Visual StudioでWinFormAppプロジェクトとして開くことができるジップファイルで提供されます。 サンプルには、必要な設定がすべて含まれており、MSIデプロイのベストプラクティスが示されています。

WinForm MSIアプリプロジェクトをダウンロード

サンプルプロジェクトには何が含まれていますか?

ダウンロードには、Windows Formsアプリケーションと設定されたSetup Projectを含む完全なVisual Studioソリューションが含まれています。 テスト用のサンプル BarCode イメージを含み、デプロイ シナリオのための適切な ライセンス キー構成を示します。

ダウンロードしたプロジェクトを開くにはどうすればよいですか?

ZIP ファイルを解凍し、Installer Projects 拡張機能がインストールされた Visual Studio 2022 で .sln<//code> ファイルを開きます。 最新バージョンのIronBarcodeがNuGet Package Manager経由でインストールされていることを確認してください。 より詳細なセットアップ手順については、APIドキュメントを参照してください。

よくある質問

BarCode アプリケーションで MSI インストーラを作成する場合、どの DLL ファイルが必要ですか?

IronBarCodeでMSIインストーラーを作成する場合、onnxruntime.dll、IronBarcodeInterop.dll、ReaderInterop.dllの3つの必須DLLファイルを含める必要があります。これらのファイルは、アプリケーションがMSIパッケージ経由でデプロイされたときにIronBarcodeが正しく機能することを保証します。

BarCode アプリケーション用の MSI インストーラを作成する前に、どのような前提条件が必要ですか?

IronBarcodeでMSIインストーラを作成する前に、Visual Studio 2022用のMicrosoft Visual Studio Installer Projectsエクステンションをダウンロードしてインストールする必要があります。さらに、IronBarcodeがNuGetパッケージマネージャ経由でプロジェクトにインストールされていることを確認してください。

C#でMSIバーコードをすばやく生成して読み取るにはどうすればよいですか?

IronBarcodeはMSIバーコードの生成と読み取りのためのシンプルなAPIを提供します。BarCodeWriter.CreateBarcode()を使用してMSIエンコーディング・タイプでMSIバーコードを作成し、画像として保存し、BarcodeReader.Read()を使用してリーダー・オプションにBarcodeEncoding.MSIを指定して読み取ることができます。

BarCode アプリケーションの配布に MSI インストーラを使用する利点は何ですか?

MSIインストーラは、企業での導入に理想的な標準化されたインストール方法を提供します。IronBarcode と組み合わせることで、ロールバック機能、管理インストールポイント、Windows Installer サービス統合を提供し、さまざまな環境で信頼性の高いインストールを実現します。

BarCode ライブラリは、MSI パッケージで複数のバーコード形式をサポートしていますか?

IronBarcodeは複数のバーコードフォーマットをサポートしており、様々なビジネスアプリケーションに対応します。この柔軟性により、開発者は特定のビジネス要件に基づいて、異なるバーコードタイプをMSIパッケージアプリケーションに統合することができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 2,002,059 | バージョン: 2025.12 リリース