我试图在Windows上使用MonoDevelop进行开发 需要使用Excel.Interop。
的C#应用程序但是,MonoDevelop似乎无法访问仅驻留在Windows GAC中的程序集:
有没有办法在Windows上使用MonoDevelop来开发特定于Windows的程序集?
是的,我知道SharpDevelop和C#Express 两者都缺少对我来说非常重要的VI键绑定。
修改:展开错误的屏幕截图:
答案 0 :(得分:2)
MonoDevelop(和Visual Studio)不允许从GAC引用程序集。在构建时,程序集从以下位置解析:
因此,问题取决于您是在Windows上定位Mono还是.NET,MD也可以定位。在简单的情况下,它可能是.NET - 如果您没有安装Mono,那么它将只针对.NET,并且选项不会显示。并且Mono没有WPF(Presentation * .dll),因此无论如何你必须使用.NET。所以我只谈谈.NET。
这适用于Microsoft.Office.Interop.Excel.dll。它可能已经在一个程序集文件夹中注册而且MonoDevelop只是没有找到它 - MS偶尔会添加新的程序集文件夹注册表项,所以也许我们还没有将它们添加到MD中 - 或者它可能只会被注册到程序集文件夹中如果您安装Visual Studio Tools for Office。您可以非常轻松地注册它(请参阅http://msdn.microsoft.com/en-us/library/wkze6zky(v=vs.110).aspx),或者您可以通过路径而不是按名称来引用它。如果您认为它已经注册但是MD没有注册,请提交错误。
PresentationCore.dll比较复杂,因为它是一个框架程序集。 MonoDevelop有一个内部列表,列出了它知道在每个框架中的程序集名称,并知道在哪里查找.NET。我们通常会在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
中查找4.0框架程序集 - 但我认为只有在安装了VS(包括Express)或.NET SDK时它们才会存在。我们确实在C:\Windows\Microsoft.NET\Framework\v4.0.30319
中进行了回退,但看起来这对PresentationCore.dll不起作用,因为MS似乎已将它放在WPF
子目录中。我已经在MD master中解决了这个问题,但是在它发布之前它会有一段时间。现在,我建议安装参考组件。