在VS2012中加载DLL(C#/IronPython/C#)

在VS2012中加载DLL(C#/IronPython/C#),c#,.net,dll,ironpython,C#,.net,Dll,Ironpython,我想在Visual Studio 2012中调试应用程序的各个部分 我有一个C#可执行文件,它与Oracle.DataAccess dll一起工作。它很好用。 在它里面调用了IronPython运行时,它也可以正常工作。 在这些IronPython模块中,调用了主C#应用程序中的对象,它可以与Oracle dll配合使用 如果独立调用IronPython脚本,那么它可以正常工作,并使用C#对象 但是在本例中,C#对象看不到Oracle dll 要调试IronPython脚本,我必须创建单独的Py

我想在Visual Studio 2012中调试应用程序的各个部分

我有一个C#可执行文件,它与Oracle.DataAccess dll一起工作。它很好用。 在它里面调用了IronPython运行时,它也可以正常工作。 在这些IronPython模块中,调用了主C#应用程序中的对象,它可以与Oracle dll配合使用

如果独立调用IronPython脚本,那么它可以正常工作,并使用C#对象

但是在本例中,C#对象看不到Oracle dll

要调试IronPython脚本,我必须创建单独的Python解决方案,因此无法配置我的C#解决方案。所以我无法控制C#引用。GAC拥有正确的Oracle dll,但如何告诉C#dll使用它

反之亦然如果我在C#解决方案中可以管理引用,那么我就不能添加py文件并调试它们


我如何配置VS,使其能够分别使用双条目C#或IronPython运行/调试我的应用程序?

您可以尝试复制“适合我”的内容。创建包含以下内容的解决方案:

  • python项目(ironpython)
  • C#项目
使用标准VS机制将对所需oracle库(oracle.DataAccess.dll)的引用添加到C#项目中。C#项目还应该包含一个构建后步骤,将生成的dll和pdb复制到python脚本可以找到的地方。在我的例子中,是python项目的根

您的python项目被选为启动项目。 我使用Ctrl-F5和F5来启动它。在这两种情况下,事情都按预期进行。 在调试模式下,我能够在python和引用的C#模块中设置并点击断点。我可以看到oracle库正在加载(调试器的输出窗口)

然而:

  • 堆栈跟踪仅为C#
  • Visual Studio 2013更新4以及PTVS 2.1在调试时有时会崩溃