@russenreaktor прав, но, в частности, эта ошибка произойдет, если вы используете неправильный синтаксис. Для меня я случайно потерял символ $
, используемый в угловых, с #
, используемый в руле:
<button class="danger" type="button" title="Remove Property Asset {{#index}}">Remove Asset</button>
Конечно, исправление символа #
решило мою проблему:
<button class="danger" type="button" title="Remove Property Asset {{$index}}">Remove Asset</button>
Существует подключаемый модуль Reflector, который загружает сборки, содержащие ресурсы BAML (например, локализованные сборки ресурсов), и показывает соответствующий XAML: BamlViewer
При компиляции приложения WPF в Visual Studio, все ваши файлы XAML преобразуются в BAML, а затем этот BAML встраивается как ресурс в окончательную сборку DLL или EXE.
Вы можете скомпилировать XAML, создав файл проекта MSBuild, который ссылается на него. Это то, что происходит в 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
Это создаст файл BAML в obj \ Debug, в приведенном выше примере это будет obj \ Debug \ Themes \ Generic.baml.
Надеюсь, что это поможет.