擅长:python、mysql、java
<p>草案解决方案:</p>
<ol>
<li>将NoSenseDll复制到Python的文件夹,在我的例子中是<code>%HOMEPATH%\Anaconda</code>。在</li>
<li>重新启动IPython/Spyder。在</li>
</ol>
<hr/>
<p>最终解决方案:</p>
<pre><code>static MyTestDllClass() // static constructor
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(LoadFromSameFolder);
}
static Assembly LoadFromSameFolder(object sender, ResolveEventArgs args)
{
string folderPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string assemblyPath = Path.Combine(folderPath, new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(assemblyPath) == false) return null;
Assembly assembly = Assembly.LoadFrom(assemblyPath);
return assembly;
}
</code></pre>
<p>最后一点:</p>
<p>如果因为matplotlib或pandas而无法使用IronPython,<br/>
如果你不能使用python.net因为IPython或spyder,<br/>
如果您不想使用COM互操作只是因为,<br/>
你真的想让C和Python协同工作,使用上面的解决方案和C反射。在</p>