问题: .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并将其设置为加载不同的配置文件不是一个选项.
我有以下(简化的)Terraform 代码:
variable "cluster_id" {
default = 1
}
resource "aws_instance" "instance" {
... some instance properties ...
tags {
"Name" = "${format("cluster-%02d", var.cluster_id)}"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行terraform apply计划时显示:
tags.Name: "%!d(string=1)"
Run Code Online (Sandbox Code Playgroud)
将cluster_id在format()这样格式化失败并不像一些处理。我希望我得到,cluster-01但事实并非如此。
我做错了什么还是真的不可能在格式中使用自定义变量作为数字?