IronBarcodeを使用したC# MSIインストーラーの作成
IronBarcode を使用して MSI インストーラーを作成するには、ソリューションにセットアップ プロジェクトを追加し、必要な DLL (IronBarcodeInterop.dll、および ReaderInterop.dll) を参照させ、プロジェクトをビルドして配布可能な MSI パッケージを生成します。
MSI(Microsoft Installer)は、ソフトウェアのインストール、更新、削除を容易にするWindowsのインストールパッケージです。 MSIを使用することで、アプリケーションをインストールするための標準化された方法が提供され、これは特に企業での導入に有益です。 MSI 形式は、ロールバック機能、管理インストールポイント、Windows Installer サービス統合などの高度な機能をサポートします。
IronBarcodeは、お持ちの既存のアプリケーションとシームレスに統合し、簡単な配布のためにMSIに変換するツールを提供しています。 さまざまな環境にわたって信頼性のあるインストールを保証し、開発者が含めるコンポーネントや除外するコンポーネントを選択することを可能にします。 このライブラリは、複数の BarCode フォーマットをサポートしており、さまざまなビジネスアプリケーションに汎用的に使用できます。
このチュートリアルでは、IronBarcodeの強力なスキャン機能を活用した例のバーコードアプリケーションからMSIファイルを作成する方法を示しています。
クイックスタート:ワンクリックでMSIバーコードを生成して読み取る
IronBarcodeのシンプルなAPIを使用して、最小限のセットアップでMSIバーコードの作成と読み取りを行うことができます。以下のスニペットは、MSIバーコードイメージを書き、それを読み取ることがいかに簡単かを示しています。
-
IronBarcode をNuGetパッケージマネージャでインストール
PM > Install-Package BarCode -
このコード スニペットをコピーして実行します。
var msiImg = IronBarCode.BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.MSI).SaveAsImage("msi.png"); var results = IronBarCode.BarcodeReader.Read("msi.png", new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.MSI }); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronBarcode を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
始める前に必要な前提条件はありますか?
プロジェクトを開始する前に、[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 パッケージを作成できるようになります。
どのバージョン for .NET Frameworkをターゲットにすべきですか?
MSI デプロイメントシナリオと最大限の互換性を保つため、Windows Forms App (.NET Framework) を使用してください。 IronBarcodeはさまざまな.NETプラットフォームをサポートし、MSIインストーラーが一般に配備されるWindowsシステムとの最も広範囲な互換性を保証します。
どのように最初の MSI インストーラー プロジェクトを作成しますか?
この例では、Windows Forms App (.NET Framework)プロジェクトを使ってその機能を説明します。 このアプローチは、デスクトップバーコードスキャンアプリケーションに馴染みのあるUIパラダイムを提供します。
どのプロジェクトタイプが MSI インストーラーに最適ですか?
Windows Formsアプリケーションは、MSI展開されたバーコードスキャンアプリケーションを作成するための最も簡単な経路を提供します。 これらのツールは、Windowsネイティブの統合を提供し、.NET Framework以外のランタイム依存を必要としません。
デモ アプリケーションの主なコンポーネントは何ですか?
アプリケーションは、画像から BarCode をスキャンするためのファイルダイアログを開くボタン付きのフォームで構成されています。 このシンプルなインターフェイスは、デプロイの複雑さを最小限に抑えながら、中核となる機能を示しています。 より高度なシナリオについては、PDF から BarCode を読み取る、または async バーコード読み取りを実装することを検討してください。
Windowsフォームにボタンを追加するには?
ToolBoxに移動Buttonを検索- Windowsフォームにドラッグ&ドロップしてボタンを追加します。

ボタンコントロールはどこにありますか?
Button コントロールは、Visual Studio ツールボックスの [共通コントロール] セクションにあります。 ツールボックスが表示されていない場合は、View > Toolbox から開くか、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}");
}
}
}
}
}
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Namespace MsiInstallerSample
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All
IronSoftware.Logger.LogFilePath = "Default.log"
IronBarCode.License.LicenseKey = "IRONBARCODE-MYLICENSE-KEY-1EF01"
Using openFileDialog As New OpenFileDialog()
openFileDialog.Filter = "Image files (All files (*.*)|*.*"
If openFileDialog.ShowDialog() = DialogResult.OK Then
Try
' Load the selected image
Using bmp As New Bitmap(openFileDialog.FileName)
' Process the image
Dim anyBitmap As AnyBitmap = AnyBitmap.FromBitmap(bmp)
' Configure barcode reader options (customize as needed)
Dim option As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Detailed,
.ExpectMultipleBarcodes = True,
.ScanMode = BarcodeScanMode.Auto
}
Dim result As BarcodeResults = IronBarCode.BarcodeReader.Read(anyBitmap, option)
If result.Count > 0 Then
Dim output As String = String.Empty
For Each barcode In result
Console.WriteLine($"Barcode Found: {barcode.Text}")
output += barcode.Text & vbCrLf
Next
MessageBox.Show($"Detected Barcodes: {vbCrLf}{output}")
Else
MessageBox.Show("No Barcode found.")
End If
End Using
Catch ex As Exception
MessageBox.Show($"{ex.Message}")
End Try
End If
End Using
End Sub
End Class
End Namespace
バーコード読み取りロジックの主要コンポーネントは何ですか?
このコードでは、MessageBoxを通じて結果を表示します。 読み取り速度のオプションは、パフォーマンス要件に基づいて調整できます。 ExpectMultipleBarcodes 設定を有効にすると、1 つの画像から複数の BARCODE を読み取ることができます。
本番環境でのエラーはどのように処理すればよいですか?
生の例外の詳細を表示するのではなく、適切なエラーログとユーザーフレンドリーなエラーメッセージを含めること。 BarCodeが認識されないシナリオに対する再試行ロジックを実装し、画質要件に関するガイダンスをユーザーに提供することを検討してください。
このコードで PDF ドキュメントをスキャンできますか?
PDFドキュメントについては、PDF BarCodeの抽出を適切に処理するため、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
}
' For PDF documents, use ReadPdf method
If Path.GetExtension(openFileDialog.FileName).ToLower() = ".pdf" Then
Dim pdfResults = BarcodeReader.ReadPdf(openFileDialog.FileName, option)
' Process PDF results similar to image results
End If
セットアップ プロジェクトを追加して MSI を作成するにはどうすればよいですか?
フォームとそのコントローラロジックを設定した後、既存のソリューションにセットアッププロジェクトを追加して、MSIインストーラを作成します。 セットアッププロジェクトでは、作成したアプリケーションのインストーラを構築することができます。 このプロセスは、必要なコンポーネント全てを含む、IronBarcodeの依存関係を1つにパッケージ化し、デプロイ可能なユニットを生成します。
ソリューションで右クリックし、追加 > 新しいプロジェクト...に移動します。
MSIインストーラーのため、ReleaseモードでMsiInstallerSampleプロジェクトを再度ビルドします。
セットアッププロジェクトで右クリックし、追加 > プロジェクト出力...に移動します。
![ソリューション エクスプローラーが表示された状態で、SetupProject のデプロイ オプションを示す Visual Studio の [プロジェクトの出力グループの追加] ダイアログ](/static-assets/barcode/how-to/msi-installer/add-project-output.webp)
MSIインストーラーが正常に動作するようにするには、セットアッププロジェクトに次の3つのファイルを含める必要があります: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にあります

これらのファイルのいずれかが欠けている場合、このトラブルシューティングの記事に記載されているように、次のような例外メッセージが表示されることがあります:MSIインストーラの作成でDLLが見つからない。
最後に、セットアッププロジェクトをビルドします。 インストーラーは次の場所に配置されます:MsiInstallerSample\SetupProject\Release
なぜこれらの特定の DLL が必要なのですか?
IronBarcodeは、MLベースのバーコード検出および処理機能を持つこれらのネイティブライブラリに依存しています。 ReaderInterop.dllはネイティブなBARCODE処理操作を処理します。 これらのコンポーネントは、画像補正やフォールト トレランスのような高度な機能を可能にします。
これらの DLL をインクルードし忘れた場合はどうなりますか?
DLL が欠落していると、インストール後にユーザーが BarCode をスキャンしようとしたときに実行時例外が発生します。 アプリケーションが IronBarcode を正しく初期化できない場合、FileNotFoundException または DllNotFoundException エラーが発生する可能性があります。
プロジェクトの出力設定を構成するにはどうすればよいですか?
プロジェクトの出力を追加するときに"プライマリ出力"を選択して、メインの実行ファイルとその管理された依存関係を含めます。 これは、すべて for .NETアセンブリが含まれていることを保証しますが、上記のネイティブDLLを手動で追加することを忘れないでください。
MSIインストーラーを実行してテストするには?
MSIファイルを使用してアプリケーションをインストールし、すべてがスムーズに動作するようにします。 テストは、インストールとアンインストールの両方のシナリオをカバーし、適切なデプロイメントを検証する必要があります。

テスト中に確認すべきことは何ですか?
アプリケーションが正しく起動し、ファイルダイアログを開くことができ、テスト画像から BarCode を正常にスキャンできることを確認します。 包括的な機能を確保するために、さまざまなサポートされているバーコード形式でテストしてください。 また、ライセンスキーアプリケーションがデプロイされた環境で正しく動作することも確認してください。
インストールに関する問題のトラブルシューティングはどうすればよいですか?
Windows Installer のログを有効にして、インストールの失敗やコンポーネントの欠落に関する詳細情報を取得します。 エラーの詳細については Windows イベント ビューアを確認し、一般的なデプロイメントに関する問題については トラブルシューティング ガイドを参照してください。
完全なサンプル プロジェクトはどこからダウンロードできますか?
このガイドの完全なコードをダウンロードできます。これは、Visual StudioでWinFormAppプロジェクトとして開くことができるジップファイルで提供されます。 サンプルには、必要な設定がすべて含まれており、MSIデプロイのベストプラクティスが示されています。
サンプルプロジェクトには何が含まれていますか?
ダウンロードには、Windows Formsアプリケーションと設定されたSetup Projectを含む完全なVisual Studioソリューションが含まれています。 テスト用のサンプル BarCode イメージを含み、デプロイ シナリオのための適切な ライセンス キー構成を示します。
ダウンロードしたプロジェクトを開くにはどうすればよいですか?
ZIPファイルを解凍し、Installer Projects拡張機能がインストールされたVisual Studio 2022で.slnファイルを開いてください。 NuGet Package Managerを介して最新バージョンのIronBarcodeをインストールしていることを確認します。 より詳細なセットアップ手順については、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パッケージアプリケーションに統合することができます。
IronBarcodeをバーコード操作に使用するメリットは何ですか?
IronBarcodeは、統合の容易さ、多数のバーコード形式サポート、高品質の画像生成、強力な読み取り能力などのメリットを提供し、C#での総合的なバーコード操作ツールとなります。
IronBarcodeはバーコードの外観カスタマイズをサポートしていますか?
はい、IronBarcodeはカラー、サイズ、テキスト注釈を含むバーコードの外観に関する詳細なカスタマイズオプションを提供し、特定のデザイン要件に合わせて調整が可能です。
IronBarcodeはビジネスプロセスの効率向上にどのように役立ちますか?
IronBarcodeは迅速かつ正確なバーコード生成と読み取りを可能にし、手動データ入力エラーの減少、在庫および資産追跡の改善などにより、ビジネスプロセスの効率を向上させます。
プロジェクトにIronBarcodeを実装するために必要なプログラミングスキルは何ですか?
IronBarcodeをプロジェクトに実装するためには、C#プログラミングの基本的な知識があれば十分で、開発者をガイドするための簡単なメソッドと包括的なドキュメントが提供されています。
IronBarcodeは小規模プロジェクトと大規模エンタープライズアプリケーションの両方に適していますか?
IronBarcodeはスケーラブルかつ多用途に設計されており、小規模プロジェクトおよび強力なバーコードソリューションを必要とする大規模エンタープライズアプリケーションの両方に適しています。

