問題タブ [side-by-side]

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 投票する
1 に答える
2344 参照

assemblies - マニフェスト ツール (mt.exe) を使用して、「アンマネージ アセンブリ」の「バージョン」を変更します。

ネイティブ コードは、サイド バイ サイド キャッシュを使用するためのアセンブリ (「アンマネージ アセンブリ」など) を持つことができるようになったので、ビルド後に DLL のバージョンを変更することに興味があります (インクリメンタル ビルドの自動バージョン管理スキームの一部として)。 . 私はこのコマンドを使用して近いと思います:

mt -updateresource:MyNewlyBuiltThing.dll;#2 -identity:"MyNewlyBuiltThing, version=5.5.0.1"

そのコマンドは私に次のエラーを与えます:

mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "MyNewlyBuiltThing.dll". Access is denied.

このコマンドは、管理者権限でコマンド プロンプトから実行されます。私の開発ボックスにはウイルス対策ソフトウェアがありません (また、ファイルには読み取り専用フラグが設定されていません)。

おそらく問題は、ID 文字列で間違った名前を使用していることです。結局、バイナリの埋め込みリソースを Visual Studio にロードすると、マニフェストが表示されますが、マニフェストはその名前を言及する必要はなく、依存関係の名前のみを言及しています。

とにかく、私は mt.exe が、管理されていないアセンブリのビルド後のバージョン バンピングを私に与えることができるかどうか疑問に思っていました。私が間違っていることについての洞察はありますか?もしこれが不可能なら、なぜですか?

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

c# - 登録不要の COM 相互運用性: サイド バイ サイド構成が正しくないため、アプリケーションを起動できませんでした

バックグラウンド。C# で記述された ComWrapper.dll という COM ラッパー アセンブリと、Project1.exe という Visual Basic 6 アプリケーションがあります。Project1.exe.manifest ファイル (内容を以下に示します) を追加しましたが、「サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。これが私の構成です」というエラーが表示されます。 .

どんな助けでも大歓迎です。

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

com-interop - アプリケーションの実行ビット数に応じて、32ビットまたは64ビットのサイドバイサイドCOMDLLをロードする

COM DLLを使用する.NETアプリケーションがあり、32ビットバージョンと64ビットバージョンの両方があります。32ビットまたは64ビットのいずれかでCOM相互運用機能をサイドバイサイドで機能させる2つのアプリケーションマニフェストを作成しました。ここに32ビットバージョンがあります:

ただし、2つのマニフェストを維持すると、移植性が失われます。アプリケーションをインストールするときに、使用するバージョンを決定する必要があります。また、64ビットアプリケーションは32ビットモードで実行できなくなりました。

.NETアプリケーションが実行されるビット数に応じて正しい32ビットまたは64ビットのDLLをロードする可能性はありますか?2つの依存関係要素を使用しようとしました。1つはwith <assemblyIdentity processorArchitecture="x86" .../>、もう1つはwith<assemblyIdentity processorArchitecture="amd64" .../>ですが、アプリケーション構成エラーが発生します。

答えていただければ幸いです。よろしく、モリッツ

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

visual-studio - エラー-サイドバイサイド構成が正しくないため、アプリケーションを起動できませんでした

Visual Studio 2008で構築されたexeは、開発システムで実行されますが、他のシステムでは、「サイドバイサイド構成が正しくないため、アプリケーションを起動できませんでした。お願いします...」というエラーが表示されます。exeはリリースモードであり、 VC再配布可能ファイルをインストールしました。

dumpbin/dependentsコマンドを使用すると他のdllと一緒にmsvcr90d.dllにも依存していることがわかります。これがこのエラーが発生する理由である可能性があります。プロジェクトのプロパティ-cc++-コード生成-ランタイムライブラリで、マルチスレッドdll(/ MD)を選択しました

この依存関係を削除する方法、または最後にエラーを修正する方法に関する提案はありますか?

ありがとう、Pradeep

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

c++ - msvcp90d.dllにmsvcr90d.dllがありません

あるマシンにDLLプロジェクトがあり、新しくインストールしたVS2008を使用して別のマシンにコピーしました。プロジェクトはビルドされますが、デバッグできません。Dependecy Walkerは、私のDLLがmsvcr90d.dllを認識していることを示していますが、msvcp90d.dllは同じDLLを認識していません。しかし、別のウィンドウでmsvcp90d.dllを開くと、msvcr90d.dllがmsvcp90d.dllに表示されます。これは明らかにSxSの問題ですが、解決方法がわかりません。グーグルで見つかったいくつかの提案された修正を試しました:

  • インクリメンタルリンクを無効にし、
  • マニフェストの作成を削除してから含める
  • My Documents \ VisualStudio2008から設定フォルダーを削除します

それらのどれも動作しません。状況は、デバッグビルドとリリースビルドの両方で同じです。ヘルプ!

0 投票する
3 に答える
3507 参照

c++ - vmwareの「サイドバイサイド構成が正しくないためにアプリケーションを起動できませんでした」エラーに対処するにはどうすればよいですか?

リリースされた.exeファイル(Visual Studio 2008で作成したもの)をVMWareWorkstation6.5でWindowsServer2008 32ビットOSを使用して開こうとすると、「サイドバイサイド構成が正しくないため、アプリケーションを起動できませんでした」というメッセージが表示されます。コードがそうである場合でも、常にエラーが発生します。

誰かがその問題の王に直面しているのですか、それともそれに対処する方法を知っていますか?

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

windows - サイドバイサイドCOMの制限は何ですか?

ClickOnceを介して使用できるようにアプリケーションを調整する必要があります。このアプリケーションは、.exeファイルと膨大な数のVisual C ++ライブラリで構成されており、それらの一部は、他のライブラリで使用されるインプロセスCOMサーバーです。

現在、インストーラーはregsvr32COMサーバーを登録しますが、ClickOnceアプリケーションはインストール中にレジストリを変更することを許可されていないようです。だから私たちは何か他のものが必要です。

オプション1は、削除CoCreateInstance()して代わりにLoadLibraryEx()/を使用することDllGetClassObject()です。これにはコードの変更が必要ですが、非常に信頼性があります。これが機能しない理由はわかりません。

オプション2は、マニフェストとサイドバイサイドCOMアクティベーションを使用することです。私がすぐに目にする問題は、ナイトリービルドごとにバージョン番号をインクリメントするため、マニフェストを自動的に更新する必要があることです。それはあまり刺激的ではありません。サイドバイサイドCOMアクティベーションを使用することのその他のそれほど明白ではない制限は何ですか?

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

.net - VMでのデバッグビルドに関するSideBySideの問題

xVJob.dllという名前のC++/ CLIDLLを使用するVisualStudio2008で開発された.NETアプリケーションがあります。

テストVMで実行しようとすると、SideBySideエラーが発生します。VMはWindowsServer2003SP2を実行しています。

開発マシンですべてを正常に実行およびデバッグできますが、テストVMで実行しようとすると、例外がスローされます。

Microsoft.VC90.DebugCRTフォルダーとMicrosoft.VC90.DebugMFCフォルダーをC:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ redist\Debug_NonRedistからVM上の実行可能ファイルを含むフォルダーにコピーしました。

xVJob.dllのビルド時に作成されるマニフェストは次のようになります。

Debug_NonRedistランタイムDLLのマニフェストには、バージョンversion=" 9.0.30729.4148 "と記載されています。

次のイベントがシステムイベントログに記録されます。

マニフェストで見つかったコンポーネントIDが、要求されたコンポーネントのIDと一致しません

4行目のマニフェストまたはポリシーファイル"...\ Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST"の構文エラー。

これは、Microsoft.VC90.DebugCRT.MANIFESTファイルの内容です。

xVJob.dllとランタイムファイルで生成されたマニフェストで異なるランタイムバージョンを取得する理由がわかりません。

助けてください!

0 投票する
4 に答える
26021 参照

windows - WindowsコマンドラインEXEの「サイドバイサイド構成」とは何ですか?どのように修正すればよいですか?

提供されているAPIを使用して一部のハードウェアをテストするC++(Visual Studio 2005で構築)で記述された単純な.exeがあります。構築したWindows7マシンでは正常に動作しますが、別の(Windows 7)マシンにコピーして(コマンドラインから)実行すると、次のようになります。

サイドバイサイド構成が正しくないため、アプリケーションを起動できませんでした。詳細については、アプリケーションイベントログを参照するか、コマンドラインのsxstrace.exeツールを使用してください。

「サイドバイサイド構成」とは何ですか?

sxstrace.exeを実行し、使用法情報を読みました。sxstrace.exeのログファイルを生成するには、exeをインストルメント化する必要があるようです。

問題は、私のexeが他のマシンに存在しないか、バージョンが間違っているDLLを必要としていることだと思います。exeが使用しているDLLと、マシン上でリンクしているバージョン(動作している場所)を確認するにはどうすればよいですか?別のマシンにコピーして実行するためのその他のアドバイスはありますか?より多くの情報が役立ちますか?

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

windows-7 - Microsoft.VC80.MFC ファイルがないのはなぜですか?

VS2005 がインストールされた新しい Win7 マシンを入手しました。Manifest.bin にあるマニフェストでビルドされた MyApp.exe を起動しようとしました。

...

...

その結果、「サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした...

イベントビューアーは理由を詳しく教えてくれました:

"c:\Xxx\MyApp.exe" のアクティベーション コンテキストの生成に失敗しました。依存アセンブリ Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053" が見つかりませんでした。詳細な診断には、sxstrace.exe を使用してください。

そのため、winsxs フォルダーを参照しましたが、実際にはすべての「4053 フォルダー」がありませんでした。次に、Manifest.bin を編集し、4053 を 4927 に置き換えました。別のバージョンでエラーが再発しました。次に、msvcr80.dll の「4927-folder」を取得しましたが、mfc80.dll の「4927-folder」がないことがわかりました。

2 つの質問:

-mfc80.dll の「4927 フォルダー」がないのはなぜですか?

-すべての「4053 フォルダー」を取得するには?

ありがとう & BR -マティ