jjzjj

c# - 在我的构建输出中包含 Nuget 依赖项?

我正在构建一个模块化的.NET核心应用程序,它可以使用MEF在运行时加载扩展。我有2个项目,一个是我希望能够在运行时加载的库,然后我有一个将执行加载的主应用程序。我的库项目有一些Nuget依赖项。为了在运行时加载我的库,我需要这些Nuget依赖项在运行时在库旁边可用,但使用VS2017构建不包括这些NugetDLL作为输出的一部分。如何在构建库时包含NugetDLL?编辑:我试过dotnetpublish和dotnetpack,但这两个都让我成为一个nupkg文件,只包含我的DLL而不是我需要的nugetDLL。另外,我不能很容易地在运行时加载nupkg文件,这就是为什么我想自己获取生

c# - MEF 和 ShadowCopying DLL,以便我可以在运行时覆盖它们

我试图停止我的应用程序锁定我的MEF插件目录中的DLL,以便我可以在运行时覆盖程序集(请注意,我实际上并没有试图让MEF在运行时重新加载它们,在下一个应用程序启动时很好,我只是不想停止应用程序来进行复制)我正在尝试通过为我的mef加载程序集创建影子复制的应用程序域来做到这一点,如下所示:[Serializable]publicclassComposer:IComposer{privatereadonlystring_pluginPath;publicComposer(IConfigurePluginDirectorypluginDirectoryConfig){_pluginPath=

c# - MEF 依赖关系和版本控制

我有一个使用MEF加载部件的系统。这些部分中的每一个都依赖于一个核心库。当我构建项目时,我将版本号添加到.dll文件中,如下所示:part1-1.0.0.0.dllpart2-1.0.0.0.dll此外,还有一个执行MEF组合的应用程序。它还使用核心库。我发现我可以只部署“部分”dll,并且组合工作正常,因为应用程序已经加载了部分所依赖的核心库。所以我的文件系统看起来像这样:/parts/part1-v1.dll/parts/part2-v1.dllcomposer-v1.exe核心v1.exe我遇到的问题是如何处理核心和部分的版本控制。假设我对核心和其中一个部分进行了更新。然后,我部

c# - 具有 ImportMany 和 ExportMetadata 的 MEF

我刚刚开始使用托管可扩展性框架。我有一个导出的类和一个导入语句:[Export(typeof(IMapViewModel))][ExportMetadata("ID",1)]publicclassMapViewModel:ViewModelBase,IMapViewModel{}[ImportMany(typeof(IMapViewModel))]privateIEnumerablemaps;privatevoidInitMapView(){varcatalog=newAggregateCatalog();catalog.Catalogs.Add(newAssemblyCatalog(

c# - 为什么我无法调试动态加载的程序集?

我正在开发一个WebAPI项目,该项目使用内部模拟框架来拦截和修改来自Controller的响应。它使用MEF加载一个程序集,其中包含在满足某些先决条件时执行的代码。我知道这工作正常,因为我可以在响应中看到模拟已执行,但由于某种原因我无法调试动态加载程序集中的代码。尽管断点看起来很活跃,但执行绝不会在那里中断。我尝试调用Debugger.Break();它确实中断了,但调用堆栈显示为空,VisualStudio仅显示此消息:我可以看到程序集及其符号已加载到模块窗口中:我可以在调用动态加载的程序集(behavior参数)之前中断,它看起来像这样:privateHttpResponseMe

C# MEF 与静态类的用法

我的解决方案中有一个静态类,用于处理各种程序集。我想通过MEF链接它们,所以我在类中创建了一个字段。[Import(typeof(A))]staticprivateA_a1;然后我有一个方法,我将程序集名称作为参数传递给该方法:publicstaticALoadPackage(stringfilePath){varcatalog=newAggregateCatalog();catalog.Catalogs.Add(newAssemblyCatalog(filePath));var_container=newCompositionContainer(catalog);???}那么现在有没

c# - 创建导入的 MEF 部件的多个实例

目前我的WPF应用程序导入这样的部分[Import(typeof(ILedPanel)]publicILedPanelPanel{get;set;}但这为ma提供了实现ILedPanel的类的单个实例。我真正想做的是能够创建尽可能多的实例我需要的。请注意,ILedPanel仅包含一个导出随时使用该软件。(如果我使用带有List的导入,它会给我一个实例对于每个实现ILedPanel的类)有什么建议吗? 最佳答案 所有其他答案都很老,所以他们没有提到MEF中一个相对较新的功能,称为ExportFactory.这个通用类允许您导入Expo

c# - ASP.NET MVC : Views using a model type that is loaded by MEF can't be found by the view engine

我正在尝试创建一个框架,以允许将Controller和View动态导入到MVC应用程序中。到目前为止,它是这样工作的:我正在使用.NET4、ASP.NETMVC3RC和RazorViewEngine每个项目都使用MEF导出和导入Controller-我将给定项目中的一组Controller和View称为“模块”BuildManager使用应用前启动方法和BuildManager.AddReferencedAssembly动态引用使用MEF发现的程序集。使用构建事件将二进制文件(来自导出项目)和View复制到目标项目的文件夹结构中使用自定义Controller工厂选择Controller

c# - 从仅给定 Type 实例的 MEF 容器中获取导出

我有一个场景,我必须从我的CompositionContainer实例中导出,但我只有一个Type可以使用;我在编译时不知道类型,因此我无法以正常的通用方式检索导出的对象。通常你会这样做:_container.GetExportedObject();但就我而言,我有这个:TypesomeType=...;_container.HowDoIGetTheExport(someType);有什么想法吗? 最佳答案 找到答案:varexport=_container.GetExports(someType,null,null).FirstO

c# - 在哪里可以找到 ASP.NET MVC 插件模式的介绍?

我正在尝试找出如何使用asp.netmvc实现“插件”框架。我做了一些阅读,发现很多人推荐MEF作为asp.netmvc中的插件框架。链接:http://blog.maartenballiauw.be/post/2009/04/21/ASPNET-MVC-and-the-Managed-Extensibility-Framework-%28MEF%29.aspx但是,我遇到了无法使用ViewModels和其他基本mvc组件的问题。我知道现在我有点不知所措。我正在寻找教程、书籍和插件模式的实际应用示例,但我找不到任何东西。而且,我发现的大多数MEF文档都让我有点难以理解(codeplex