【发布时间】:2017-06-17 05:46:30
【问题描述】:
我有一个项目,我在内存中使用 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider 编译了很多文件
当我开始尝试使用 wpf windows 时,我的问题发生了。
我能够编译内存中的程序集,但是当我打开窗口时,我得到:
System.Exception:组件“Dynamic.DragonListForm”没有 由 URI 标识的资源 '/ScriptCode;component/wpf_ui/dragonlistform.xaml'。 在 System.Windows.Application.LoadComponent(Object 组件,Uri resourceLocator)
注意:我通过在特定文件夹中添加所有 .cs 文件的列表来编译
objCompileResults = objCodeCompiler.CompileAssemblyFromFile( objCompilerParameters, files.ToArray() );
我还添加了使其工作所需的 dll 引用。
注意:多亏了 Reed,我才能够通过以下方式使其运行良好,满足我的需求:
List<string> bamlFiles = Directory.GetFiles( directoryPath, "*.baml", SearchOption.AllDirectories ).ToList();
bamlFiles.ForEach( x => objCompilerParameters.EmbeddedResources.Add( x ) );
在我的项目中,这已经足够好了。我有一个用于执行语音命令的 .NET 应用程序。一般来说,我有它,所以我可以在更改语音命令时重新编译内存中的程序集更改。我想其中一些不适用于 WPF,但我现在可以在我的内存程序集中使用 WPF 窗口。
【问题讨论】: