1

Silverlight4 アプリケーションがビルドされると、'Microsoft.Practices.Unity.Silverlight.dll' アセンブリが別のファイル zip ファイルに配置されず、代わりに XAP ファイルに配置されます。

一貫性を保つために、「標準アセンブリの処理方法」トピックの以前の質問へのリンクを次に示します。 [ Silverlight: 標準アセンブリの処理方法: 標準アセンブリの処理方法] [ Silverlight: 標準アセンブリの処理方法 (パート 2) : 方法標準アセンブリを処理する (パート 2)]

実行されたアクションのリストは次のとおりです。

  1. Silverlight プロジェクトとそのすべてのライブラリから 'Microsoft.Practices.Unity.Silverlight.dll' アセンブリの参照を削除しました。
  2. この dll を「C:\Project\DLL」フォルダーにコピーしました。
  3. 「Microsoft.Practices.Unity.Silverlight.extmap.xml」ファイルは、次の内容のフォルダーに作成されました。

    < ?xml バージョン="1.0"?>

    <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <assembly>
        <name>Microsoft.Practices.Unity.Silverlight</name>
        <version>2.0.414.0</version>
        <publickeytoken>31bf3856ad364e35</publickeytoken>
        <relpath>Microsoft.Practices.Unity.Silverlight.dll</relpath>
        <extension downloadUri="Microsoft.Practices.Unity.Silverlight.zip" />
      </assembly>
    </manifest>
    

(バージョン番号と公開キー トークンは、アセンブリ自体から取得します)。

  1. アセンブリへの参照を Silverlight プロジェクトと、プロジェクトで使用される 1 つの Silverlight クラス ライブラリに追加しました。
  2. Silverlight プロジェクトの完全な再構築を実行し、Web サイトを再構築しました。

ファイル「Microsoft.Practices.Unity.Silverlight.zip」がWebサイトの「ClientBin」フォルダーに表示されることを期待しています...しかし、そうではありません..そして、私には理由がわかりません..

おそらくあなたは何か役立つことを知っていますか?もしそうなら、私に知らせてください。

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

4

1 に答える 1

0

Unity Framework 2.0をダウンロードしてインストールしました。

デフォルトのインストール フォルダーに 2 つのファイルを追加しました。

C:\Program Files (x86)\Microsoft Unity Application Block 2.0 for Silverlight\Bin

Microsoft.Practices.Unity.Silverlight.extmap.xml :

<?xml version="1.0"?>
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <assembly>
    <name>Microsoft.Practices.Unity.Silverlight</name>
    <version>2.0.414.0</version>
    <publickeytoken>31bf3856ad364e35</publickeytoken>
    <relpath>Microsoft.Practices.Unity.Silverlight.dll</relpath>
    <extension downloadUri="Microsoft.Practices.Unity.Silverlight.zip" />
  </assembly>
</manifest>

およびMicrosoft.Practices.ServiceLocation.extmap.xml :

<?xml version="1.0"?>
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <assembly>
    <name>Microsoft.Practices.ServiceLocation</name>
    <version>2.0.414.0</version>
    <publickeytoken>31bf3856ad364e35</publickeytoken>
    <relpath>Microsoft.Practices.ServiceLocation.dll</relpath>
    <extension downloadUri="Microsoft.Practices.Unity.Silverlight.zip" />
  </assembly>
</manifest>

Unity Framework を使用したことがないので、両方のアセンブリを同じ ZIP ファイルに含めることにしました。そのためdownloadUriに、要素の属性をextension両方の extmap.xml ファイルで同じファイル名に設定しました。この場合、Microsoft.Practices.Unity.Silverlight.zipを使用しました。

Silverlight 4.0 プロジェクトから Microsoft.Practices.Unity.Silverlight アセンブリへの参照を追加しました。

次に、 Silverlight プロジェクトのプロジェクト プロパティで [アプリケーション ライブラリ キャッシュを使用して XAP サイズを削減する] オプションをオンにしました。

ソリューションを再構築しました。ホスト Web アプリケーションの ClientBin フォルダー内に、再構築後に新しい Zip ファイル Microsoft.Practices.Unity.Silverlight.zip が追加されました。

私が使用した方法に従って、それがうまくいくかどうかを確認することをお勧めします。そのオプションをオフにしてソリューションを再構築してみてください (クライアントの bin フォルダーをクリアします)。クリーンアップし、チェックして再構築し、効果があるかどうかを確認します。

于 2010-07-31T20:49:24.573 に答える