2009-06-01 2 views

답변

2

리플렉터 플러그인 즉이 BAML 자원 (예 : 지역화 된 리소스 어셈블리) 및 해당 XAML을 보여줍니다 포함하는로드 어셈블리 : 모든 BamlViewer

당신은 Visual Studio에서 WPF 응용 프로그램을 컴파일 XAML 파일이 BAML로 변환 된 다음 BAML은 리소스로 최종 DLL 또는 EXE 어셈블리에 포함됩니다.

+0

실제로, 나는 그 반대를 원합니다. –

+0

프로젝트의 obj \ Debug 디렉토리에서 찾습니다. Hans. Visual Studio는 최종 DLL 또는 EXE에 BAML 파일을 삽입하기 전에 BAML 파일을 생성하여 배치합니다. –

+0

필자는 이것을 필사적으로 찾고있었습니다. – viky

11

XAML을 참조하는 MSBuild 프로젝트 파일을 만들어 XAML을 컴파일 할 수 있습니다. 이것은 Visual Studio에서 프로젝트에서 컴파일 할 때 (임시 .proj 파일을 만들고 빌드 할 때) "덮개 아래"에서 발생합니다.

상당히 최소한의 프로젝트 파일 (xamlcompile.csproj)이 같은 것입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <ProductVersion>9.0.30729</ProductVersion> 
    <SchemaVersion>2.0</SchemaVersion> 
    <OutputType>library</OutputType> 
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> 
    <ProjectGuid>{6B8967FF-37B7-43E8-B866-FFD6F13FFC0A}</ProjectGuid> 
    </PropertyGroup> 
    <ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Core"> 
     <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    </Reference> 
    <Reference Include="System.Xml.Linq"> 
     <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    </Reference> 
    <Reference Include="System.Data.DataSetExtensions"> 
     <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    </Reference> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Xml" /> 
    <Reference Include="WindowsBase" /> 
    <Reference Include="PresentationCore" /> 
    <Reference Include="PresentationFramework" /> 
    <Reference Include="PresentationFramework.Classic" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Page Include="Themes\Generic.xaml"> 
     <Generator>MSBuild:Compile</Generator> 
     <SubType>Designer</SubType> 
    </Page> 
    </ItemGroup> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
</Project> 

그리고 당신은 다음 명령을 실행하여 BAML 파일을 생성 할 수 있습니다 :

MSBuild /t:ResolveReferences;MarkupCompilePass1;MarkupCompilePass2 xamlcompile.csproj 

이것은을 만듭니다 위의 예제에서 obj \ Debug 아래의 baml 파일은 obj \ Debug \ Themes \ Generic.baml이됩니다.

희망이 있습니다.

관련 문제