У меня есть проект, где я компилировать много файлов в памяти с помощью Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider
CodeDom с помощью WPF - ошибки во время выполнения
Моя проблема случилась, когда я начал пытаться использовать МОФ окна.
Я могу получить сборку в памяти для компиляции, но когда я иду, чтобы открыть окно я получаю:
System.Exception: Компонент «Dynamic.DragonListForm» не имеет ресурс, идентифицированный URI '/ScriptCode ;component/wpf_ui/dragonlistform.xaml'. в System.Windows.Application.LoadComponent (Component Object, Uri resourceLocator)
Примечание: Я компилирую, добавив список всех файлов .cs в определенной папке
objCompileResults = objCodeCompiler.CompileAssemblyFromFile(objCompilerParameters, files.ToArray());
Я также добавить dll, необходимые для его работы.
Примечание: Благодаря Рид, я был в состоянии заставить его работать достаточно хорошо для моих потребностей, выполнив:
List<string> bamlFiles = Directory.GetFiles(directoryPath, "*.baml", SearchOption.AllDirectories).ToList();
bamlFiles.ForEach(x => objCompilerParameters.EmbeddedResources.Add(x));
В моем проекте это достаточно хорошо. У меня есть приложение .NET, которое я использую для выполнения голосовых команд. В общем, у меня есть это, поэтому я могу перекомпилировать изменения сборки в памяти при изменении голосовых команд. Я предполагаю, что некоторые из них не будут работать с WPF, но теперь я могу использовать окна WPF в моей сборке в памяти.