使用仅Windows组件进行单一开发

时间:2012-06-30 09:29:44

标签: .net monodevelop

我试图在Windows上使用MonoDevelop进行开发 需要使用Excel.Interop。

的C#应用​​程序

但是,MonoDevelop似乎无法访问仅驻留在Windows GAC中的程序集:

Missing References

有没有办法在Windows上使用MonoDevelop来开发特定于Windows的程序集?

是的,我知道SharpDevelop和C#Express 两者都缺少对我来说非常重要的VI键绑定。

修改:展开错误的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:2)

MonoDevelop(和Visual Studio)不允许从GAC引用程序集。在构建时,程序集从以下位置解析:

  1. 框架
  2. 程序集文件夹(以.NET工具链为目标时)
  3. pkg-config(定位Mono工具链时)
  4. 因此,问题取决于您是在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中解决了这个问题,但是在它发布之前它会有一段时间。现在,我建议安装参考组件。