问题: .NET Core 2.0(netstandard 2.0)中是否有任何方法可以application.exe.config在运行可执行文件时应用未在给定文件中定义的程序集重定向?也许是一些程序化的方式?或者甚至通过一些特殊设置/标志运行可执行文件?
场景: 这是我试图在.NET Core 2.0中解决的简化场景.
ServiceHost.exe.dll,让我们调用它 Service.dll,它实现了一些IService带方法的入口接口Start().ServiceHost.exe --service-assembly Service.dll它时加载服务并调用其IService.Start()实现.假设该服务需要一些程序集重定向.在.NET Core世界中,当您引用比旧.NET Framework更多的软件包并且并非所有软件包都具有最新.NET Core的确切版本时,这种情况非常普遍.使用程序集重定向可以很好地工作,并允许您使用旧版本的库目标就好了.
这就是我的设置问题.由于Service.dll是一个由独立可执行app.config文件加载的库,因此不使用其带有程序集重定向的文件.运行时使用ServiceHost.exe.config与否Service.dll.config,这是预期的.
提醒:我正在使用.NET Core这样的解决方案,创建新的Application Domain并将其设置为加载不同的配置文件不是一个选项.
我们使用面向 NetFramework 的 NetCore 服务主机,您可以使用自动绑定重定向:
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
然后,这会在 Servicehost.exe.config 中自动生成绑定重定向
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |