C# 如何在Castle Windsor中注册程序集之前排除这些程序集

C# 如何在Castle Windsor中注册程序集之前排除这些程序集,c#,.net,castle-windsor,.net-assembly,system.reflection,C#,.net,Castle Windsor,.net Assembly,System.reflection,我无法排除安装过程中的某些程序集 我试试这个: public class InternationnalisationInstaller : IWindsorInstaller { public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store) { string

我无法排除安装过程中的某些程序集

我试试这个:

 public class InternationnalisationInstaller : IWindsorInstaller
{
    public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store)
    {
        string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
        var filter = new AssemblyFilter(path)
                .FilterByAssembly(a => !a.IsDynamic
                    && !a.FullName.Contains("Microsoft"));

        container.Register(Classes.FromAssemblyInDirectory(filter)
            .BasedOn<ITraductionProvider>()               
            .WithService.AllInterfaces());
    }
}
公共类国际安装程序:IWindsorInstaller
{
public void安装(Castle.Windsor.IWindsorContainer容器、Castle.MicroKernel.subsystem.Configuration.IConfigurationStore)
{
字符串路径=路径.GetDirectoryName(Assembly.GetExecutionGassembly().Location)
var filter=新的AssemblyFilter(路径)
.FilterByAssembly(a=>!a.IsDynamic
&&!a.FullName.Contains(“Microsoft”);
容器.Register(类.FromAssemblyInDirectory(筛选器)
.BasedOn()
.WithService.AllInterfaces());
}
}
在开发中没有问题,但在生产中:

不可能取消Microsoft.VisualStudio.Shell.Immutable.10.0,版本=10.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a“程序集”中的所有独立项。这是一个很好的融合。 §System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly程序集、ObjectHandleOnStack retTypes) §System.Reflection.RuntimeAssembly.GetExportedTypes() áCastle.Core.Internal.ReflectionUtil.GetAvailableType(汇编,布尔includeNonPorted) áCastle.Core.Internal.ReflectionUtil.GetAvailableTypesOrdered(程序集-程序集,布尔includeNonPorted) áCastle.MicroKernel.Registration.FromAssemblyDescriptor.b_u0(程序集a) §System.Linq.Enumerable.d_u14 2.MoveNext() áCastle.MicroKernel.Registration.FromDescriptor.Castle.MicroKernel.Registration.IRegistration.Register(IKernelInternal内核) áCastle.MicroKernel.Registration.BasedOnDescriptor.Castle.MicroKernel.Registration.IRegistration(IKernelInternal内核) áCastle.MicroKernel.DefaultKernel.Register(IRegistration[]注册) áCastle.Windsor.WindsorContainer.Register(IRegistration[]注册) §Internationalization.InternationalizationInstaller.Install(IWindsorContainer容器,iConfiguration存储)

此程序集用于为VSIX注册标记类。 你能帮助我吗?
谢谢这里是一个应用程序的示例,我在其中显式加载我的程序集进行集成测试。您可以根据需要添加/编辑此查询:

DirectoryInfo areasFolder = new DirectoryInfo(HostingEnvironment.MapPath(@"~\Areas"));
FileInfo[] assemblyFiles =
                        areasFolder.EnumerateDirectories()
                            .SelectMany(d => d.EnumerateFiles("*.dll"))
                            .Where(f => f.Name.Contains("MyAppNamespace"))
                            .GroupBy(f => f.Name.Substring(0, f.Name.Length - f.Extension.Length))
                            .Select(g => g.OrderByDescending(f => f.LastWriteTimeUtc).First())
                            .ToArray();

如果需要,也许不排除它?您能将错误消息翻译成英语吗?Sriram:FileNotFoundExceptionJester:在生产中不需要,只需要为开发人员编写VSIX包