問題タブ [stdole]
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.
c# - stdole.dll は何をしますか?
独自の C++ COM コンポーネントを使用する大規模な C# (.net 2.0) アプリと、同じく COM 経由でアクセスされるサードパーティの指紋スキャナー ライブラリがあります。本番環境では、独自の C++ COM コンポーネントからのイベントが発生し、正常に受信されたにもかかわらず、フィンガープリント ライブラリからの一部のイベントが C# アプリに発生しないという問題が発生しました。
MSINFO32 を使用して、動作中のシステムにロードされているモジュールと障害が発生しているシステムのモジュールを比較すると、STDOLE.DLL が GAC になく、障害のあるプロセスにロードされていないことが原因であることがわかりました。
このファイルを GAC にドラッグすると、フィンガープリント COM ライブラリからイベントが正常に返されました。
では、stdole.dll は何をするのでしょうか? サイズは 16k なので、それほど多くはありません... STDOLE32 のような別のライブラリへの何らかのリンクですか? その不在はなぜそのような奇妙な行動を引き起こすのでしょうか?
stdole.dll の配布方法 これは XCOPY デプロイ アプリであり、GAC は使用しません。それをリソースとしてパッケージ化し、System.EnterpriseServices.Internal.Publish.GacInstall を使用して GAC にあることを確認する必要がありますか?
.net - エラー メッセージ: システム アップデートが必要です
VS2008 [Windows フォーム アプリケーション] にアプリケーションがあります。
そして、VS2008 の Publishing 機能を使用して公開します。
[プロジェクト=>プロジェクト プロパティ=>公開=>今すぐ公開]。
パブリッシュ プロジェクトを自分の PC にインストールすると、問題なく動作しますが、一部のクライアント PC では、次のエラー メッセージが表示されます。その PC にアプリケーションをインストールさせないでください... インストール プロセスはすぐに停止します。
公開アプリケーションの何が問題になっていますか?
c# - 埋め込み相互運用警告を沈黙させることはできません
まず、使用する必要のあるサードパーティのActiveXコントロールがあります。
次に、stdoleライブラリを使用して、サードパーティがいくつかの画像を制御できるようにする必要があります。デフォルト設定でコンパイルすると、いくつかの警告が表示されます。
簡単です。そのアドバイスに従い、stdoleリファレンスのEmbedInteropTypesをfalseに設定します。私が今クライアントマシンに行くまで、すべてが良さそうです。突然、アプリケーションがこれをスローします。
だから、それは起こらないと思います(stdoleの埋め込み相互運用機能を削除すると、ライブラリが完全に見つからなくなる効果があるのかどうかはわかりませんが)。
さて、逆に行き、EmbedInteropですべてをtrueとマークしましょう。おっと!コンパイルエラー:
では、警告を取り除き、構築して実行できるものを用意する方法について何かアドバイスはありますか?
アップデート
ハンス・パッサントは、実際に問題を解決する答えをコメントとして投稿しました。彼が答えとしてそれを再投稿するならば、私はそれを受け入れます。残念ながら、ローカルコピーに設定されたDLLがプロジェクトのリリースフォルダーに適切にコピーされるという標準的な問題もありますが、ソリューションの最終リリースフォルダー(別の実行可能ファイル)に移動しません。実行可能ファイルにstdoleへの参照を追加することで、今のところそれを解決しました。おそらくそれで十分だと思います。
vb.net - stdole.dll がインストールされていることを確認するにはどうすればよいですか
CodeJock CommandBarsを使用してリボン コントロール インターフェイスを提供するプロジェクトがあります (これは ActiveX コントロールです)。
このコンポーネントには stdole.dll が必要ですが、オフィスのないマシンにインストールしたばかりで、この dll が GAC にありません。ライセンスの制限により、この dll を再配布することは禁止されています。
Primary Interop Assemblies の再配布を見つけましたが、これをインストールしようとすると、office が必要であると表示されました。
どんな助けでも感謝します。
c# - Visual Studio 2015 (stdole.dll) で ClickOnce を使用してデプロイされたアプリケーションをインストールできない
アプリケーションは .net 4.5 で実行され、VS 2012 で ClickOnce を使用してビルドおよびデプロイされます。VS 2015 で設定を変更せずに同じアプリケーションをビルドおよびデプロイすると、クライアント側にインストールできませんか?
次のエラーが発生しました:
「このアセンブリ stdole.dll に対して厳密な名前の署名が無効です」
stdole.dll を配置から除外すると、インストールは問題ありません。
私の質問は: stdole.dll を含めて VS2015 にアプリケーションをデプロイする方法は?
c# - このアセンブリ stdole.dll に対して厳密な名前の署名が無効です
ClickOnce
アプリケーションで次のエラーが発生し始めました。同じアプリケーションをインストールして実行すると、インストールが成功したように見えた後、次のエラー メッセージが表示されます。
アプリケーションの検証に失敗しました
エラーの詳細は次のとおりです。
このアセンブリ stdole.dll に対して厳密な名前の署名が無効です。
詳細をクリックすると、
エラーの詳細 この操作中に次のエラーが検出されました。* [04/13/2016 11:33:22 AM] System.Deployment.Application.InvalidDeploymentException (SignatureValidation) - このアセンブリ stdole.dll に対して厳密な名前の署名が無効です。- ソース: System.Deployment - スタック トレース: System.Deployment.Application.ComponentVerifier.VerifyStrongNameAssembly(String filePath, AssemblyManifest assemblyManifest) で System.Deployment.Application.ComponentVerifier.VerifyComponents() で System.Deployment.Application.DownloadManager.DownloadDependencies( SubscriptionState subState、AssemblyManifest deployManifest、AssemblyManifest appManifest、Uri sourceUriBase、文字列 targetDirectory、文字列グループ、IDownloadNotification 通知、DownloadOptions オプション) を System.Deployment に設定します。