【发布时间】:2017-07-04 12:19:35
【问题描述】:
我有一个应用程序依赖 NuGet 的 <bindingRedirect> 功能来确保 log4net.dll 的单一版本。绑定重定向会自动添加到应用程序 app.config 文件中。
我想将该应用程序的程序集加载到 Python 中并调用其代码,但由于绑定重定向是特定于应用程序的,因此 Pythonnet 不会接收它们并且程序集无法加载:
LOG: Post-policy reference: log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a
[...snip...]
LOG: Assembly Name is: log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a
WRN: Comparing the assembly name resulted in the mismatch: Major Version
我可以让 pythonnet 引用我的应用程序的 app.config 并使用那里找到的 <bindingRedirect> 吗?或者我可以在启动后应用绑定重定向,而不需要 app.config?
【问题讨论】:
-
您是在使用 Python 中的 .NET 程序集还是在 .NET 中嵌入 Python?
-
我正在从 Python 调用 .NET 程序集
-
那么
app.config应该适用于python.exe或pythonw.exe。你试过这个吗? -
复制 app.config 就像是对本地问题的全局解决方案(一个 python.exe,许多应用程序需要 bindingRedirects),但它让我解决了这个问题,我想不出更好的方法。
-
另一种解决方案是:stackoverflow.com/a/33362587/2230844
标签: c# python .net app-config python.net