20

別のアプリを実行するアプリを開発していますが、次のエラーを受け取りました:

MSVCR100.dll がコンピューターにないため、プログラムを開始できません

私の C# アプリで、この .dll を windows/system32 フォルダーにコピーするという問題を解決できますか? または、これを行う別の方法はありますか?

4

4 に答える 4

32

以下のこのリンクは、MSVCRT100インストーラーの適切なダウンロードを示しています。これは、アプリをインストールする前に顧客に実行してもらいたいものである可能性があります。これにより、MSVCRT DLLが適切なディレクトリに適切にインストールされ、すべてのアプリケーションで使用できるようになります。

Microsoft Visual C ++ 2010再頒布可能パッケージ(x86) (おそらく32ビットおよび64ビットOSに必要なもの)

Microsoft Visual C ++ 2010再頒布可能パッケージ(x64) (アプリ自体が64ビットの場合のみ)

独自のMSI内のマージモジュールを介してMSVCRT100DLLを実際にインストールする場合は、MSIをx86バージョンの「c:\ programfiles \ commonfiles \ mergemodules」ディレクトリにあるMSMにリンクできます( Visual Studio 2010がインストールされていると仮定します)。

C:\Program Files (x86)\Common Files\Merge Modules>dir *CRT*.msm
 Volume in drive C has no label.
 Volume Serial Number is 60A4-1718

 Directory of C:\Program Files (x86)\Common Files\Merge Modules

04/22/2011  01:18 PM           584,192 Microsoft_VC100_CRT_x64.msm
04/22/2011  01:41 PM           571,904 Microsoft_VC100_CRT_x86.msm  <-- This is likely the MSM you want if your app is 32-bit.
04/22/2011  01:14 PM           847,360 Microsoft_VC100_DebugCRT_x64.msm
04/22/2011  01:39 PM           801,792 Microsoft_VC100_DebugCRT_x86.msm

他の2つの方法:MSVCRT100.dllをシステムディレクトリにコピーする代わりに、このDLLに依存する起動しようとしているEXEアプリのディレクトリにコピーします。これはお勧めしませんが、他のアプリを壊すリスクはありません。

別の選択肢。起動しようとしているEXEのソースコードが実際にある場合は、静的にリンクするだけで、この「installmsvcrt100.dll」ノイズをすべて完全に回避できます。Visual Studioでは、C / C ++([コード生成]タブの下)にあるプロジェクトのプロパティダイアログのオプションです。「ランタイムライブラリ」を「マルチスレッドDLL」から「マルチスレッド」に変更します。これにより、/MTコンパイラスイッチが追加されます。

于 2011-08-05T23:36:37.743 に答える
5

起動しようとしているプログラムは、最初に適切にインストールする必要があります。Msvcr100.dll は、VS2010 を使用して C または C++ で記述されたプログラム用に展開する必要がある DLL の 1 つです。Setup and Deployment プロジェクトを使用するか、/MT オプションを使用してプログラムをビルドすることにより、簡単に実行できます。サポートについては、プログラムの所有者にお問い合わせください。

于 2011-08-05T13:09:16.313 に答える
2

欠けているのは、Visual C++ ランタイムです。

C# コードから C++ アプリケーションを開始していますか? その場合は、適切なランタイムがクライアント マシンで利用できることを確認してください。

于 2011-08-05T13:07:41.523 に答える
1

これをコピーして登録することでこれを修正できるはずです (コマンドライン: regsvr32 "DLLNAME")。

警告: ソフトウェアにファイルを含める前に、次の記事を参照してください... http://msdn.microsoft.com/en-us/library/ms235299.aspx

私はあなたの行動に責任を負いません

于 2011-08-05T13:08:19.637 に答える