2

解決しました!以下の私の自己回答を参照してください。


私はJavascriptとHTMLを使用して2つのMetroスタイルアプリを構築しています。これらは異なるプレゼンテーションレイヤーを持ちますが、内部では多くの同様の機能を備えています。JavascriptからC#メソッドを呼び出す機能のおかげで、多くの「共通の」機能をC#WinMdライブラリに組み込むことができ、両方のトップレベルアプリで参照できます。

ただし、再利用したい純粋なJavascriptであるユーティリティタイプの関数がいくつかあります。Javascriptを使用して「WinMD」を作成する方法はないようです(C#またはC ++のみ)。

.NETの世界では、通常、ファイルをリソースとしてパッケージ化し、共通のアセンブリからロードします。「共通の」.jsファイルをリソースとしてWinMDに追加し、アプリ対応のURL(ms-appx:またはms-resource:など)を介してアクセスする方法はありますか?

4

2 に答える 2

3

秘訣は次のとおりです。

  1. 再利用するファイルをWinMDクラスライブラリプロジェクト(「MyWinMdProj」など)に追加します。
  2. プロパティページでリソースを「コンテンツ」としてマークします(通常はデフォルトです)
  3. トップレベルのMetroアプリからクラスライブラリへの参照を追加します
  4. ms-appxプロトコルでスクリプトタグを使用して、ファイルを参照します。

<script src = "ms-appx:///MyWinMdProj/path/to/file.js">

3つのスラッシュに注意してください。「MyWinMdProj」は、独自のトップレベルパッケージではなく、Metroアプリのパッケージ(つまり、ms-appx:///)に関連するフォルダーです。

この方法で含まれるファイルはすべて、C:\ Program Files \ WindowsAppsの下のファイルシステムに公開されることに注意してください。ただし、トップレベルのアプリプロジェクトのhtml、js、cssなどのファイルはすべて既に存在するため、その点で、2つ(またはそれ以上)の異なるアプリの間にコードをコピーして貼り付けた場合よりも悪くはありません。

于 2012-05-17T18:56:44.533 に答える
0

または、jQueryとModernizerの実行方法と同様に、スクリプトをNugetパッケージにパッケージ化してから、両方のプロジェクトにNuget参照を追加することもできます。

http://www.nuget.org

于 2012-07-08T14:51:14.253 に答える