問題タブ [winmd]

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

windows-runtime - 配布用に Windows ランタイム コンポーネントをパッケージ化する方法は?

JavaScript と XAML Windows ストア アプリの両方で使用する WinRT コンポーネント (.winmd) を作成しました。JavaScript クライアントで Loose .winmd ファイル出力を含めて参照すると、次のビルド警告が表示されます。

Microsoft.AppXPackage.Targets(808,9): 警告 APPX1707: .winmd ファイル 'myRuntimeComponent.winmd' の実装ファイルが提供されていません。アプリ マニフェストで登録情報を生成するには、プロジェクト ファイルの .winmd 参照項目で 'Implementation' メタデータを指定します。

このエラーに関するドキュメントや、実装メタデータを含める方法が見つかりません。

JavaScript クライアントを実行しているときに、.winmd からエクスポートされたクラス メソッドが呼び出されると、次の例外がスローされます。

0x80040154 - JavaScript ランタイム エラー: クラスが登録されていません

.winmd をビルドする Visual Studio プロジェクトを参照するのではなく、クライアント アプリケーション プロジェクトで緩い .winmd ファイルを参照していることに注意してください。私のユース ケースは、.winmd コンポーネントの完全なソースではなく、.winmd 出力を配布することです。ソース配布はオプションではありません。

また、Windows ランタイム コンポーネントがプロジェクト参照として参照されている場合、JavaScript クライアントが正しくビルドおよび実行されることにも注意してください。C# XAML クライアントは、プロジェクト参照または Loose .winmd への参照を使用して正しく実行されます。

Loose .winmd を参照すると、クライアント アプリケーションのビルドで一部の登録情報が生成されていないように見えます。

JavaScript とマネージ クライアントの両方で使用するルーズな Windows ランタイム コンポーネントをビルドして配布するにはどうすればよいですか?

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

c# - ランタイムは、.winmd 参照の代わりに exe/dll を検索しようとします。

参照ライブラリを使用するアプリがあります。そのライブラリは、.winmd ライブラリを参照します。

参照されているライブラリの IL を見ると、次の参照が表示されます。

ただし、実行時に例外が発生します。

また、Procmon を使用すると、FlurryWin8SDK.exe と FlurryWin8SDK.dll を検索しようとしていることがわかりますが、.winmd 拡張子のファイルは検索されません。

また、これは Fusion ログビューアからの出力です。

この奇妙な動作の理由は何ですか?

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

c# - winmd ファイルの読み込み時に LoadFrom と UnsafeLoadFrom が失敗する

C# 4.5 アプリで Reflection を使用して .winmd ファイルを読み込もうとしています (そこに保存されているメタデータを読みたいです)。

と を使用するAssembly.LoadFromAssembly.UnsafeLoadFrom、アセンブリの読み込みが次の例外で失敗します。

追加情報: ファイルまたはアセンブリ 'file:///xxxxx.winmd' またはその依存関係の 1 つを読み込めませんでした。操作はサポートされていません。(HRESULT からの例外: 0x80131515)

使用Assembly.ReflectionOnlyLoadFromすると成功します。

この動作の説明は何ですか? また、メタデータを読み取るために .winmd コンポーネントを読み込む適切な方法は何ですか?

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

c# - 異なるディレクトリにある winmd ファイル間の関係は何ですか?

私は Windows ストア アプリの開発に取り組んでおり、Windows のさまざまなディレクトリに winmd ファイルが見つかりました。

Windows ストア アプリを開発する場合、アプリは次の場所にあるWindows.winmdファイルを参照しています。

C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral

しかし、次の場所にいくつかの異なる winmd ファイルを見つけることもできました。

C:\windows\system32\WinMetadata

私の質問は、これら 2 つの異なるディレクトリの下にある winmd ファイル間の関係は何ですか?

コンパイル時に大きなWindows.winmdファイルが使用されて appx パッケージがビルドされ、 C:\windows\system32\WinMetadataの下にある個別の winmd ファイルが実行時に使用されると思いますか?

また、C:\windows\system32\WinMetadataの下にも大きなWindows.winmdファイルが 1 つあるのはなぜですか?

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

.net - .winmd ファイルが与えられた場合、実際の実装 DLL はどこにありますか?

.winmd ファイルが与えられた場合、実際の実装はどこにありますか? .winmd ファイルは、ヘッド ファイルや動的ライブラリの .lib ファイルと同じように、実装が含まれていません。その実装がどこにあるのか知りたいです。ありがとう。

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

c# - Bing Maps を使用する Windows ランタイム コンポーネントの作成

Bing Maps を使用する Windows ランタイム コンポーネントを作成しようとしています。Bing Maps ライブラリは WinMD ベースであるため、独自の WinMD も作成する必要があります。悲しいことに、Bing Maps で必要な VCLibs WinMD と、ビジュアル コンポーネントの作成に必要な Windows WinMD の間に競合があるようです。コンパイルすると、次のエラーが発生します。

Windows ランタイム タイプ 'Windows.Foundation.Point' が、参照されている複数の winmd ファイルで見つかりました。「C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral\platform.winmd」または「C:\Program Files (x86)」のいずれかを削除してください\Windows Kits\8.1\References\CommonConfiguration\Neutral\Windows.winmd' を参照ファイルの一覧から選択します。

これらの参照のどちらも削除できないため (両方ともライブラリで使用されています)、コンポーネントを作成できません。

この問題を解決する方法はありますか?

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

c# - Windows ストア アプリの TypeLoadException

Windows ストア アプリで Winmd (Windows ランタイム コンポーネント) を使用しています。winmd で定義されている型をインスタンス化しようとすると、次の例外が発生します。

必要な参照をすべて追加し、マニフェスト ファイルに適切な変更を加えました。私は何か見落としてますか?誰もがこれを引き起こす原因を知っていますか?

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

javascript - x64 にコンパイルし、System.BadImageFormatException を受け取りました

「ライブラリ」のC#プロジェクトとプロジェクト「JavaScript」を使用したソリューションがあり、それをコンパイルすると、別のプロジェクトに取り込まれる.winmdファイルが生成されます。しかし、このプロジェクトは x86 上に構築されており、x64 で次のエラーが発生するようにアプリケーションを実行するには、x64 用にコンパイルする必要があります。

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

visual-studio-2015 - ControlChannelTrigger に WINMD 参照を追加する方法

プロジェクトをアップグレードして Windows 10 をターゲットにすると、Visual Studio 2015 は前述のクラスの解決に失敗します。MSDN のドキュメントによるとWindows.Networking.Sockets.ControlChannelTriggerContract.winmd、プロジェクト参照には表示されないプロジェクトへの参照として、WINMD、つまり を追加する必要があると思います。探してみたところ、フォルダに*.winmdファイルが見つかりましたWindows Kits\10\...。残念ながら、これは、追加しようとしたときに Visual Studio が提供したものです。

参照の追加に失敗しました

どうやら、これを解決する方法がわかりません。(.NET Framework 4.6 が必要です。) 誰か助けてもらえますか?

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

c# - Windows.winmd を C# プロジェクトに埋め込み、埋め込みリソースとして読み込みますか?

デスクトップ アプリケーションで Windows アクション センター通知を使用したいのですが、それを Windows ストア アプリにせずに使用したいと考えています。アプリケーションでは、すべての DLL がリソースとして埋め込まれ、exe の外部に公開されません。また、コードを難読化して、Jet Brains dot peek のようなプログラムがソース コードを逆コンパイルできないようにします。問題は、dll のロードは正常に機能するが、プログラムの起動時に「サポートされていないタイプ」というメッセージが表示されて失敗することです。これは、難読化と暗号化によるものです。すべての保護を無効にして難読化ツールを使用して exe を実行しても、実行に失敗します。私の質問は、Windows をどのようにロードするかです。組み込みリソースとしてプロジェクトに含まれる DLL としての winmd ファイル (および拡張子を DLL に変更しても、HRESULT コードで別のエラーが返されるため機能しません)。DLLImport を使用することは可能ですか? Windows.winmd クラスへのアクセス レイヤーとして別の DLL を作成する必要がありますか? 元の埋め込みソース プロジェクトのリファレンス:http://www.codeproject.com/Articles/528178/Load-DLL-From-Embedded-Resource