如何在 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
我正在使用 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