如何在 MonoDevelop 中为旧版本指定添加依赖项?

How to specify an addin depencendy in MonoDevelop for older versions?

我正在使用 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添加的"Addin References"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 中了。

我在 Xamarin 论坛上进行了交流,答案是如果你想让你的加载项与 Xamarin Studio 5.0 兼容,你需要在该版本上构建你的加载项。参见:https://forums.xamarin.com/discussion/comment/170110#Comment_170110