過去に、次の URL で概説されているソリューションを使用して、モジュラー Silverlight アプリケーションでサード パーティの dll を複数回ダウンロードすることを回避しました。
共通ファイルを削除して Silverlight XAP ファイルのサイズを最適化する方法は?
ただし、これが機能しない Visual Studio 2010/Silverlight 5 ソリューション アプリケーションに取り組んでいます。
私は PRISM モジュールを持っています。Parent1.csproj と呼びましょう。これはサードパーティの dll への参照を持っていませんが、サードパーティの dll である child1.csproj と child2.csproj を参照する他の 2 つのプロジェクト ファイルへの参照があります。
child1.csproj と child2.csproj の両方で、3rdParty.dll の「ローカルのコピー」が false に設定されていますが、それにもかかわらず、Parent1.csproj の .xap ファイルにはサード パーティの dll が含まれています。
「ローカルのコピー」を false に設定して Parent1.csproj ファイルに child1.csproj および child2.csproj の参照を設定すると、サード パーティの dll がなく、子プロジェクトの他のコードも含まれない、大幅に削減された xap ファイルが得られます。私は実際に実行できる必要があります。
含まれているプロジェクト ファイルの "ローカル コピー" 設定が無視され、代わりに親の "ローカル コピー" 設定が使用されているようです。これらの 3rdParty.dll を除外する方法はありません。
ここで微妙なことを見逃しましたか?シェル アプリケーションが 3rdParty.dll を既にダウンロードしている場合に、これらの 3rdParty.dll を複数のモジュールにダウンロードすることを回避できる他の方法はありますか?