2010-04-06 12 views
2

WPF에서 두 개의 프로젝트가 있고 하나의 프로젝트가 주 프로젝트이고 두 번째 프로젝트는 테스트 용입니다 (주 프로젝트의 파일을 사용합니다 - 파일은 Project -> add -> 기존 항목을 통해 추가됩니다 ...) > 선택한 파일 -> 링크를 추가하면 파일이 기본 프로젝트에만 포함됩니다). 프로젝트를WPF에서 다른 프로젝트의 파일 경로를 지정하는 방법은 무엇입니까?

폴더는 다음과 같습니다 XXX 내가 별도로 테스트 메인 프로젝트의 다른 부분을 의미

C:\Work\...\Projects\Main 
C:\Work\...\Projects\XXXTestProject 

.

나는 코드를 가지고 : (http://msdn.microsoft.com/en-us/library/aa970069.aspx를)

<Window x:Class="Sokoban.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:Sokoban" 
    xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase" 
    Title="Window1" Height="559" Width="419"> 
    <Window.Resources>   
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="GameDesk.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Window.Resources> 

    <Grid>   
     <Rectangle local:GameDeskProperties.FieldSize="30" Name="myrect" Style="{DynamicResource GameDesk}" MouseEnter="Rectangle_MouseEnter" /> 
    </Grid> 
</Window> 

... GameDesk.xaml에서 XAML 리소스를 사용해야하는 주요 프로젝트에 그리고 내가 팩 URI를 사용할 수 없습니다 것 같다 . 파일을 어떻게 지정할 수 있습니까?

  • 절대 경로를 사용해야합니까? (C : \ Work ... \ Main \ Resources \ GameDesk.xaml)

  • 다른 방법이 있습니까?

감사합니다. 구성 요소/하위 폴더/ResourceFile.xaml

XAML이 경우, ,,,/ReferencedAssembly : // URI 형태의 :

팩 : // 응용 프로그램

+0

그래서 * GameDesk.xaml *을 테스트 프로젝트에 링크 된 파일로 추가 했습니까? –

+0

예. 테스트 프로젝트의 모든 중요한 부분은 메인 프로젝트에서 이루어져야합니다. –

답변

2

MSDN link here

팩을 사용하여

또는

팩이 참조 된 어셈블리에 : // siteoforigin : ,,,/하위 폴더/SiteOfOriginFile.xaml

XAML이 느슨하고 bin 폴더에 복사 된 경우

+0

첫 번째 옵션을 사용하고 싶지만이 두 가지 프로젝트가 하나의 솔루션 아래에 없기 때문에 제 경우에는 작동하지 않을 것이라고 생각합니다. 두 프로젝트는 분리 된 솔루션입니다. 그것은 내 시나리오에서와 어떻게 똑같이 보일까요? 고맙습니다! –

+0

동일한 솔루션에있을 필요는 없으며 DLL에 대한 참조 만 추가하면됩니다. –

+0

그러나 컴파일해야하는 경우 ("DLL에 대한 참조") 테스트 프로젝트에서 변경을 할 수 없습니다 (효과적으로 주 프로젝트에서 의미하는). 지금까지는 좋은 솔루션이 아닌 필요한 파일을 복사하는 VS에서 사전 빌드 이벤트를 설정했지만 작동하고 복사는 상대 경로를 통해 수행되므로 이식성이 유지됩니다. –

관련 문제