2009-06-01 17 views

cevap

2

bir Reflektör eklentisi olan yoktur BAML kaynaklarını (örneğin lokalize kaynak meclisleri) ve karşılık gelen XAML gösterir içeren yükler montajlar: tümü, BamlViewer

Visual Studio'da bir WPF uygulaması derlemek XAML dosyalarınız BAML'ye dönüştürülür ve BAML daha sonra bir kaynak olarak nihai DLL veya EXE derlemesine gömülür.

+0

aslında, tam tersini istiyorum ... –

+0

Projenizin obj \ Debug dizini Hans'a bakın. Visual Studio, BAML dosyalarını oluşturur ve onları son DLL veya EXE'e yerleştirmeden önce buraya yerleştirir. –

+0

Umutsuzca bunu arıyordum .. – viky

11

XAML'yi, başvuran bir MSBuild proje dosyası oluşturarak derleyebilirsiniz. Bu, projenizde derleme yaptığınızda Visual Studio'da "kapakların altında" olan şeydir (geçici bir .proj dosyası oluşturur ve oluşturur).

Oldukça minimal proje dosyası (xamlcompile.csproj) böyle bir şeydir:

<?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> 

Ve sonra komutu çalıştırarak BAML dosyası oluşturabilirsiniz:

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

Bu yaratacak obj \ Debug altındaki baml dosyası, yukarıdaki örnekte obj \ Debug \ Themes \ Generic.baml olacaktır.

Bu yardımcı olur umarım.

İlgili konular