Creating a MSI Installer with IronBarCode

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

MSI(Microsoft Installer)は、ソフトウェアのインストール、更新、削除を管理するためのWindowsインストールパッケージです。 MSIを使用すると、アプリケーションをインストールするための標準化された方法が提供され、特に企業レベルの展開に有益です。

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

このチュートリアルでは、バーコードアプリケーションの例からMSIファイルを作成する方法を簡単に示します。

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

IronBarcodeのシンプルなAPIを使用して、少ないセットアップでMSIバーコードを作成および読み取ることができます。以下のスニペットは、MSIバーコード画像を書き、それを読み取るのがどれほど簡単かを示しています—わずか数行ですべて行われます。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var msiImg = IronBarCode.BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.MSI).SaveAsImage("msi.png");
    var results = IronBarCode.BarcodeReader.Read("msi.png", new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.MSI });
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer

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

最初のステップ:
green arrow pointer

必要条件

プロジェクトを始める前に、MSIビルドが機能するにはMicrosoft Visual Studio Installer Projects 拡張機能をダウンロードしてください。

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

この例では、その機能を示すためにWindows Formsアプリ(.NET Framework)プロジェクトを使用します。

ボタンを追加する

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

ボタンを追加

ボタンコードを編集する

ボタンコンポーネントをダブルクリックして、フォームのC#コードにアクセスします。 以下は、バーコードを取り込み、それをスキャンしようとするフォームコンポーネントのロジックです。 このコードは画像のスキャンのみ行い、PDFには対応していません。 PDFドキュメントにはReadPdfメソッドを使用します。

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

セットアッププロジェクトの追加

フォームとそのコントローラーロジックを設定した後、既存のソリューションにセットアッププロジェクトを追加してMSIインストーラーを作成する必要があります。 セットアッププロジェクトを使用すると、先ほど作成したアプリケーションのインストーラーをビルドできます。

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

セットアッププロジェクトの追加

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

プロジェクト出力を追加

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

  • onnxruntime.dll: MsiInstallerSample\MsiInstallerSample\bin\Releaseにあります
  • IronBarcodeInterop.dll: MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\nativeにあります
  • ReaderInterop.dll: MsiInstallerSample\MsiInstallerSample\bin\Release\runtimes\win-x86\nativeにあります

追加DLLを追加

これらのファイルが欠如している場合、このトラブルシューティング記事に記載されている例外メッセージが発生する可能性があります:MSIインストーラー作成時のDLL欠如

最後に、セットアッププロジェクトをビルドします。 インストーラーは次の場所にあります:MsiInstallerSample\SetupProject\Release

インストーラーを実行してテストする

すべてがスムーズに動作していることを確認するために、MSIファイルでアプリケーションをインストールします。

Demonstration related to インストーラーを実行してテストする

MSIインストーラーサンプルプロジェクトをダウンロードする

このガイドの完全なコードをダウンロードできます。これは、Visual StudioでWinFormAppプロジェクトとして開くことができるジップファイルで提供されます。

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

よくある質問

IronBarCodeとは何ですか?

IronBarCodeは開発者が.NETアプリケーションでバーコードの読み取り、書き込み、生成を可能にするライブラリです。豊富なバーコード形式をサポートし、簡単に統合できるように設計されています。

IronBarCodeを使ってMSIインストーラーを作成するには?

IronBarCodeでMSIインストーラーを作成するには、アプリケーションにIronBarCodeライブラリを統合し、Visual Studioインストーラープロジェクトなどのツールを使用してMSIインストーラーを作成する標準手順に従う必要があります。

MSIインストーラーでIronBarCodeを使用することの利点は?

MSIインストーラーにIronBarCodeを統合することで、バーコード機能を必要とするアプリケーションの展開プロセスが簡素化され、すべての必要なコンポーネントがエンドユーザーのシステムに正しくインストールされるようになります。

IronBarCodeがサポートしているバーコード形式はどれですか?

IronBarCodeは、QRコード、UPC、EAN、Code 39、Code 128など幅広いバーコード形式をサポートしており、さまざまなアプリケーションのニーズに対応しています。

IronBarCodeでバーコードの外観をカスタマイズすることは可能ですか?

はい、IronBarCodeでは、アプリケーションの特定のデザイン要件に合わせて、色、サイズ、テキスト注釈を含むバーコードの外観をカスタマイズすることができます。

MSIインストーラーにIronBarCodeを統合するために特別なツールが必要ですか?

Visual Studioなどの一般的な開発ツールを使用して、アプリケーションにIronBarCodeを統合し、MSIインストーラーを作成することができます。IronBarCodeライブラリは.NETと互換性があり、このフレームワークを使用する開発者にとってアクセス可能です。

IronBarCodeは2Dバーコードを読み書きできますか?

はい、IronBarCodeはQRコード、Data Matrixなど、1Dおよび2Dバーコードの両方を読み書きでき、包括的なバーコード機能を提供します。

IronBarCodeを使用するためのシステム要件は何ですか?

IronBarCodeは.NETフレームワーク環境を必要とします。.NET Core、.NET 5/6、以前のバージョンと互換性があり、異なるプロジェクト間で広範な互換性を保証しています。

IronBarCodeを始めるにはどうすればよいですか?

IronBarCodeを始めるには、Iron Softwareのウェブサイトからライブラリをダウンロードし、ドキュメントを確認し、提供された例とガイドに従って.NETプロジェクトに統合します。

IronBarCodeユーザー向けに技術サポートは提供されていますか?

はい、Iron SoftwareはIronBarCodeユーザー向けにドキュメント、チュートリアル、直接サポートオプションを含む技術サポートを提供し、統合と使用の問題を始めとする支援を行っています。

Curtis Chau
テクニカルライター

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

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

準備はいいですか?
Nuget ダウンロード 1,935,276 | バージョン: 2025.11 ただ今リリースされました