我创建了以下自定义目标:
[Target("MyTarget")
public class MyTarget : TargetWithLayout
这个类是在它自己的程序集中定义的,比如说 MyTargets.dll(不是实名)。NLog.config 文件有以下几行
<extensions>
<add assembly="MyTargets, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</extensions>
已定义一个目标以使用这种新类型:
<target name="myTarget" xsi:type="MyTarget" />
已经定义了一个记录器来使用这个目标(省略)。
如果我引用目标程序集项目,我的应用程序将成功加载配置。如果我尝试引用输出 DLL,它将无法加载。如果我以编程方式从程序集中添加目标(bin 引用而不是项目),那么它可以工作。
DLL 似乎在正确的位置,即 bin 目录。该类型必须存在,因为我可以在代码中引用该类型,但是在尝试在代码中引用该类型时它似乎失败了。
为什么不直接用代码来做呢?好吧,它是我正在构建的 nuget 包的一部分,我想要一个标准配置文件分发给这个代码库的所有使用者。
任何建议/想法将不胜感激