如何在MonoDevelop中为旧版本指定插件依赖项

本文关键字:插件 依赖 版本 MonoDevelop | 更新日期: 2023-09-27 18:03:04

我正在使用MonoDevelop的AddinMaker插件来创建一个插件,我不仅想在我用来开发插件的版本(5.9.2)上运行,而且想在旧版本(>= 5.0)上运行。

到目前为止,我发现有三个点定义了对其他插件的依赖:

在AddinInfo.cs:

[assembly: AddinDependency("::MonoDevelop.Core", MonoDevelop.BuildInfo.CompatVersion)]
[assembly: AddinDependency("::MonoDevelop.DesignerSupport", MonoDevelop.BuildInfo.CompatVersion)]
[assembly: AddinDependency("::MonoDevelop.Ide", MonoDevelop.BuildInfo.CompatVersion)]
[assembly: AddinDependency("::MonoDevelop.SourceEditor2", MonoDevelop.BuildInfo.CompatVersion)]
在Manifest.addin.xml:

<Dependencies>
 <Addin id="::MonoDevelop.Core" version="5.0" />
 <Addin id="::MonoDevelop.DesignerSupport" version="5.0" />
 <Addin id="::MonoDevelop.Ide" version="5.0" />
 <Addin id="::MonoDevelop.SourceEditor2" version="5.0" />
</Dependencies>

然后还有通过Project Pad UI添加的"插件参考",它似乎根本不支持设置目标版本。

每当我使用mdtool pack MyPlugin.dll打包插件时,就会创建一个包,其中包含自动生成的addin.info文件中的重复行:

<Dependencies>
  <Addin id="::MonoDevelop.Core" version="5.9.2" />
  <Addin id="::MonoDevelop.Ide" version="5.9.2" />
  <Addin id="::MonoDevelop.SourceEditor2" version="5.9.2" />
  <Addin id="::MonoDevelop.DesignerSupport" version="5.9.2" />
  <Addin id="::MonoDevelop.DesignerSupport" version="5.0" />
  <Addin id="::MonoDevelop.Ide" version="5.0" />
  <Addin id="::MonoDevelop.SourceEditor2" version="5.0" />
  <Addin id="::MonoDevelop.Core" version="5.0" />
</Dependencies>

我怀疑包含"5.0"作为版本的条目来自我在上面提到的文件中的设置(AddinInfo.cs似乎就足够了),而"5.9.2"条目似乎来自其他地方。有办法摆脱这些吗?我所依赖的所有api都已经在5.0中存在了。

如何在MonoDevelop中为旧版本指定插件依赖项

我在Xamarin论坛上有一个交流,答案是如果你想让你的插件与Xamarin Studio 5.0兼容,你需要在那个版本上构建你的插件。见:https://forums.xamarin.com/discussion/comment/170110 Comment_170110