問題タブ [vcredist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1244 参照

visual-c++ - エンドユーザーのコンピューターに VC++ 再頒布可能ファイルを「確実に」インストールする方法

Microsoft のベスト プラクティスでは、セキュリティ上の理由から VC++ ランタイムに動的にリンクすることが定められています。アプリケーションが自動的に修正プログラムを取得し、アプリケーションを個別に更新する必要がないようにするとよいでしょう。

しかし、ここ数年、私はEvolveクライアントのインストーラーを作成してきました。クライアントのインストールに関する最大の問題は、vcredist のインストールの失敗が原因でした。最大のエラー コードは次のとおりです。

  • 1612: この製品のインストール ソースは利用できません。ソースが存在し、アクセスできることを確認してください。

  • 1638: この製品の別のバージョンが既にインストールされています。このバージョンのインストールは続行できません。この製品の既存のバージョンを構成または削除するには、コントロール パネルの [プログラムの追加と削除] を使用します。

また、一部のサードパーティ製アプリケーションが 64 ビット バージョンの Windows の System32 に 32 ビット バージョンの msvcr100.dll を手動でインストールし、これに依存するシステム上のすべてのアプリケーションが明らかに失敗するというケースにも遭遇しました。

さて、私の質問は次のとおりです。開発者が土地の利益のためにマイクロソフトのガイドラインに従いたい場合、製品を確実にインストールできない場合、どうすれば成功できるのでしょうか? 私は今、岐路に立たされており、今後の選択肢は 2 つしかありません。

  1. すべてのバイナリをランタイムに静的にリンクし、バイナリ サイズとそれに関連するセキュリティへの影響を考慮します。

  2. VC++ ランタイム DLL を手動で配布し、アプリケーションのフォルダーにダンプしますが、それが許可されているかどうかさえわかりません。

他のみんなはそこで何をしているの?

0 投票する
2 に答える
223 参照

c++ - アプリケーションに正しい C++ 再配布を含める

アプリケーションを でビルドし、Microsoft Visual Studio 2010にバンドルしたいのですvcredistが、手動で行う必要があります。vcredistアプリケーションのビルドに使用したものに自動的に対応する方法はありますか? x64 サポートのみが必要です。

たとえば、はすでにMicrosoft Visual Studio 2012バンドルされています ( の下にあります)。同様のフォルダーがありますが、実行可能ファイルやパッケージはなく、配布するのに適したオプションではないファイルのみです。vcredistMicrosoft Visual Studio 11.0\VC\redist\1033Microsoft Visual Studio 2010*.dll

0 投票する
1 に答える
895 参照

visual-c++ - Microsoft vcredist は、実行時にマニフェストで指定されたバージョンより新しいバージョンを使用します

Microsoft C++ 再頒布可能パッケージはどのように機能しますか?

Visual Studio 2008 でビルドされたバイナリがあります。RunTime ライブラリを「マルチスレッド DLL (/MD)」として使用します。マニフェストのバージョンはMicrosoft.VC90.CRT" version="9.0.21022.8". マニフェストをバイナリに埋め込むオプションを選択しました。

このバイナリがターゲット マシンにデプロイされると、次のようなランタイム エラーが発生します。

ダイナミック リンク ライブラリ MSVCP90.dll にプロシージャ エントリ ポイントが見つかりませんでした

マシンにデフォルトで含まれている msvcp90.dll のバージョンには、私のバイナリが参照している機能がないことを理解しています。

ここで、 vc++ 再頒布可能パッケージ (vcredist_x86_9.0.30729.17)をインストールし、バイナリを再度実行します。

今回は正常に動作し、読み込まれたmsvcp90.dllバージョンは 9.0.21022.8 ではなく 9.0.30729 であることがわかりました。

これはどのように起こりますか?埋め込まれたマニフェストのバージョンが 9.0.21022.8 であっても、exe は msvcp90.dll の最新バージョンをどのように選択しますか?

0 投票する
1 に答える
1783 参照

windows - vcredist_xxx.exe のサイレント インストール

以下を使用して、Windows Server 2008R2、2012、および 2012R2 に vcredist_x86.exe および vcredist_x64.exe を正常にインストールしました。

しかし

何らかの理由で、これは 2008 (R2 ではない) では機能せず、x86 でも x64 でも機能しません。いつも促されます。ファイルは \share からインストールされています。

ヘルプは大歓迎です。

ありがとう!

0 投票する
0 に答える
785 参照

c# - DLL:s 用の C++ 再頒布可能パッケージを使用した C# プロジェクトの展開

C# アプリケーションを他のマシンに展開するための Setup.msi インストーラーを作成しています。

私のアプリケーションはいくつかの C++ DLL を使用して展開されています。これには、最初に Visual++ ランタイム ライブラリ (vcredist_x86.exe または vcredist_x64.exe) をインストールする必要があります。

そこで、次のマージ モジュールを持つ Setup_x64.msi を 1 つ生成することで、この問題を解決しようとしています。

これらは、次のように、右クリック->追加->モジュールのマージ... で簡単に追加できます。

VC100 モジュールの追加

これは、この依存関係を処理する正しい方法ですか? エンドユーザーが vcredist...exe を手動でインストールする必要はありません。現在、失敗した展開マシンがすべてなくなっているため、これが正しいアプローチであることを確認しようとしていますか?

ありがとうございました!

//ジミー

0 投票する
1 に答える
761 参照

azure - Azure クラウド サービス osFamily="4" のスタートアップ タスクとして vcredist_x64.exe を実行する

Azure クラウド サービスの展開の一部として、Visual C++ 2010 再頒布可能パッケージをインストールする方法を指摘するいくつかの回答 (例:これおよびこれ) とブログ投稿があります。

最初に、vcredist_x64.exe を Web プロジェクトに追加し、その「出力ディレクトリにコピー」プロパティを「新しい場合はコピー」または「常にコピー」に設定します。次に、1行を含むコマンドファイル(私の場合は「InstallVC.cmd」)に対して同じことを行います:

次に、ServiceDefinition.csdef ファイルを編集して設定を含めます。

役割の中で。回答とブログ投稿では、ServiceConfiguration.csfg の osFamily 設定が osFamily="1" に設定されている場合、起動タスクがハングし、代わりに osFamily="2" に設定する必要があることを指摘しています。 .

私は osFamily="4" に設定されていますが、展開は失敗します。エラーメッセージが表示されますRole has encountered an error and has stopped. Application startup task failed with exit code 5100

最近の Azure OS ファミリを使用する Azure クラウド サービスの展開の一部として、Visual C++ 2010 再頒布可能パッケージをどのようにインストールしますか?

0 投票する
1 に答える
537 参照

visual-c++ - "/MT" スイッチを使用すると、VC ランタイムが不要になりますか?

/MT スイッチを使用して VS 2012 DLL をコンパイルしています。

VC ランタイム (vcredist) を再配布する必要がないということですか?

クリーンな XP SP3 クライアント コンピュータに DLL を登録できないため、質問しています。VC 2012 ランタイムを配布すると、動作します。

/MT スイッチを使用すると、その必要がなくなると思いました。私はそれを誤解しましたか?

0 投票する
1 に答える
175 参照

c++ - ビルド マシンとお客様のマシンの C++ ランタイムのバージョン

C++ プロジェクトを含む Visual Studio 2012 ソリューションがあります。コンパイルされたアプリケーションを顧客のマシンで実行できるようにするために、インストール プログラムの前提条件として最新の C++ 再配布可能ファイルを含めました。

私が含めた C++ 配布可能ファイルは、Microsoft の最新バージョンで、バージョン 11.0.61030.0 です。

ビルド マシンで msvcr110.dll を検索すると、複数の場所にファイルが表示されますが、すべてのファイルのバージョンは 11.00.51106.1 です。

ご覧のとおり、ビルド マシンには、顧客に出荷するバージョンよりも古いバージョンがあります。これは問題ですか?ビルド環境を最新バージョンに更新するにはどうすればよいですか?