2011-07-25 23 views
0

私は同じ解決策ではない2つの別々のsilverlight4.0プロジェクトを持っています。これらのプロジェクトをPrism4.0を使って統合する必要があります。別のディレクトリにある別々のsilverlight4.0プロジェクトをリンクするには、prism4.0を使用してください。

これらのプロジェクトをリンクして、両方を同じソリューションに組み込むことはできますか。

誰でも手伝いできますか?

答えて

0

私は今、両方のプロジェクトが別々のディレクトリにあるメインプロジェクトのフォルダ

にそれをコピーせずに私のメインのプロジェクトに私のモジュールプロジェクトのソリューションを参照のうえでそれをやりました。

次に、モジュールプロジェクトからApp.xamlファイルを除外し、モジュールエクスポートページを導入しました。

次に、ホスティングアプリケーションのプロパティで、モジュールのzapファイルを変更するように変更しました。

これで動作しています。

0

両方のプロジェクトを同じソリューションにすることなく、それを行うもう1つの方法があります。 "Project References"として実行することを避けるために、xamlファイルからModuleCatalogを構成する機能を使用して、参照モジュールに関する情報を入力することができます。必要なプロジェクト出力(XAPファイル)をWebプロジェクトのClientBinディレクトリにコピーするだけです。

ここで、モジュールカタログ(catalog.xaml)

<?xml version="1.0" encoding="utf-8" ?> 
<Modularity:ModuleCatalog 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
    xmlns:Modularity="clr-namespace:Microsoft.Practices.Prism.Modularity;assembly=Microsoft.Practices.Prism"> 
<Modularity:ModuleInfo 
    Ref="Solution1.ProjectA.xap" 
    ModuleName="Solution1.ProjectA" 
    ModuleType="Solution1.ProjectA.Module, Solution1.ProjectA, Version=1.0.0.0"/> 
<Modularity:ModuleInfo 
    Ref="Solution2.ProjectB.xap" 
    ModuleName="Solution2.ProjectB" 
    ModuleType="Solution2.ProjectB.Module, Solution2.ProjectB, Version=1.0.0.0"/> 
</Modularity:ModuleCatalog> 

のスニペットだと、ここでブートストラップからnippetです:

public class Bootstrapper : UnityBootstrapper 
{ 
    protected override void ConfigureModuleCatalog() 
    { 
     Modularity.ModuleCatalog.CreateFromXaml(new Uri("catalog.xaml", UriKind.Relative)); 
    } 
} 

ホープ、このことができます:)

0

このメソッドは、さ

私のモジュールファイルの起動クラス名を変更しました その後、スタートアップページの属性、および、メインプロジェクトに

をそのXAPファイルを追加し、ここではモジュール名

を呼び出すことによって、各プロジェクトをロードしたスニペットは

Imports Microsoft.Practices.Prism.Modularity 
Imports Microsoft.Practices.Prism.MefExtensions.Modularity 
Imports System.ComponentModel.Composition 
Imports Microsoft.Practices.Prism.Regions 

<ModuleExport(GetType(App))> _ 
Partial Public Class App 
    Inherits Application 
    Implements IModule 

    Public Sub New() 
     InitializeComponent() 
    End Sub 
    Public Sub Initialize() Implements Microsoft.Practices.Prism.Modularity.IModule.Initialize 
     TheRegionManager.RegisterViewWithRegion("MyRegion1", GetType(MainPage)) 

    End Sub 
    <Import()> _ 
    Public Property TheRegionManager() As IRegionManager 
     Private Get 
      Return m_TheRegionManager 
     End Get 
     Set(ByVal value As IRegionManager) 
      m_TheRegionManager = value 
     End Set 
    End Property 
    Private m_TheRegionManager As IRegionManager 
    Private Sub Application_Startup(ByVal o As Object, ByVal e As StartupEventArgs) Handles Me.Startup 

      Me.RootVisual = New MainPage() 

    End Sub 

End Class 
あるモジュールをエクスポートして、各モジュールのXAPを構築 メインアプリケーションで次に

Public Class TheBootstrapper 
    Inherits MefBootstrapper 
Protected Overrides Function CreateModuleCatalog() As IModuleCatalog 
     Dim moduleCatalog As New ModuleCatalog() 
       moduleCatalog.AddModule(New ModuleInfo() With { _ 
           .InitializationMode = InitializationMode.OnDemand, _ 
     .Ref = "App.xap", _ 
     .ModuleName = "App"})  
     Return moduleCatalog 
    End Function  
End Class 

は、次にロードされたモジュールを呼び出すことにより、モジュールのXAPを使用しました。

関連する問題