我试图在 Windows 上使用MonoDevelop开发需要使用 Excel.Interop 的 C# 应用程序。
但是,MonoDevelop 似乎无法访问仅驻留在 Windows GAC 中的程序集:
有什么方法可以在 Windows 上使用 MonoDevelop 来开发特定于 Windows 的程序集吗?
是的,我知道SharpDevelop和 C# Express,但是两者都缺少对我来说非常重要的 VI 键绑定。
编辑:扩展错误的屏幕截图:
我试图在 Windows 上使用MonoDevelop开发需要使用 Excel.Interop 的 C# 应用程序。
但是,MonoDevelop 似乎无法访问仅驻留在 Windows GAC 中的程序集:
有什么方法可以在 Windows 上使用 MonoDevelop 来开发特定于 Windows 的程序集吗?
是的,我知道SharpDevelop和 C# Express,但是两者都缺少对我来说非常重要的 VI 键绑定。
编辑:扩展错误的屏幕截图:
MonoDevelop(和 Visual Studio)不允许从 GAC 引用程序集。在构建时,程序集从以下位置解析:
因此,问题取决于您是针对 Mono 还是 .NET - 在 Windows 上,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。我们通常会在其中寻找 4.0 框架程序集,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
但我认为只有在您安装了 VS(包括 Express)或 .NET SDK 时它们才会出现。我们确实有一个后备,C:\Windows\Microsoft.NET\Framework\v4.0.30319
但它看起来对 PresentationCore.dll 不起作用,因为 MS 似乎已将它放在WPF
子目录中。我已经在 MD master 中修复了这个问题,但是要等一段时间才能发布。现在,我建议安装参考程序集。