我正在尝试使用“Addin Maker”插件(版本1.3.2)在Xamarin Studio中创建简单的项目模板加载项。 Addin项目参考Monodevelop.Addins包(版本0.3.9)。
我有简单的Manifest.addin.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ExtensionModel>
<Runtime>
<Import file="Templates/EmptyTemplate.xpt.xml"/>
</Runtime>
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="EmptyTemplate" file="Templates/EmptyTemplate.xpt.xml"/>
</Extension>
</ExtensionModel>
EmptyTemplate.xpt.xml:
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>Test</_Name>
<Category>crossplat/app/forms</Category>
</TemplateConfiguration>
<Actions>
</Actions>
<Combine name="test" directory=".">
<Options>
<StartupProject>test</StartupProject>
</Options>
<Project name="test" directory=".">
<References>
</References>
<Packages>
</Packages>
<Files>
</Files>
</Project>
</Combine>
</Template>
可以使用启动/调试插件项目或在终端中创建mpack文件,将插件安装到XS中,而不会出现问题。不幸的是,我的测试项目模板在Multiplatform / App / Xamarin.Forms或Other / Miscellaneous / Generis New Project对话框中不可见。
在日历中可以找到以下条目后启动“新建项目”对话框:
Loaded assembly: /Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/BackendBindings/MonoDevelop.VBNetBinding.dll [External]
INFO [2017-02-20 13:16:17Z]: Add-in loaded: MonoDevelop.ILAsmBinding
INFO [2017-02-20 13:16:17Z]: Add-in loaded: test.test
Loaded assembly: /Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/BackendBindings/ILAsmBinding.dll [External]
插件在IDE Extensions部分的XS插件管理器中也可见。
这个简单的模板加载项出了什么问题?
答案 0 :(得分:1)
1)在Manifest.addin.xml
移除<Runtime></Runtime>
部分。
2)由于您对模板使用“file =”引用,请确保将这些模板文件的构建操作设置为 AddinFile
< / p>
Properties/Manifest.addin.xml
<?xml version="1.0"?>
<ExtensionModel>
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="RealmEmptyProject" file="templates/PsEmptyProject.xpt.xml" />
</Extension>
</ExtensionModel>
<?xml version="1.0" encoding="UTF-8"?>
<Template Originator="SushiHangover">
<TemplateConfiguration>
<Icon>md-project</Icon>
<LanguageName>C#</LanguageName>
<_Name>Realm (Viper) Project</_Name>
<Category>other/net/general</Category>
<_Description>Creates an empty Realm Database Viper (MVVM-hybrid) project</_Description>
<DefaultFilename>RealmViperProject</DefaultFilename>
<GroupId>md-realm-project</GroupId>
</TemplateConfiguration>
<Combine name="${ProjectName}" directory=".">
<Project name="${ProjectName}" directory=".">
<References>
<Reference type="Package" refto="System" LocalCopy="false" SpecificVersion="true" />
</References>
<Packages>
<package id="Realm" />
</Packages>
</Project>
</Combine>
</Template>
答案 1 :(得分:1)
1)感谢@sushihangover的回答。这也是我问题的一部分。
在我的场景中,只要选择了复制到输出目录的xpt文件,它就可以使用<Runtime>
部分和每个Build操作。
2)我还注意到,使用“play”选项从一个XS实例安装到新调试实例的插件并不总是干净安装/卸载。因此,当我使用xpt中的一个选项进行播放时,直到我从新的调试XS实例手动卸载加载项并清理项目时才考虑它。
3)上面的场景可能发生在我使用XS随附的原始Xamarin.Forms模板中找到<GroupId>
部分时。我将<GroupId>md-xamarin-forms-project</GroupId>
从他们的模板复制到我的测试xpt,因此无法为同一<LanguageName>
填充第二个模板。在删除<GroupId>
部分,卸载加载项并清理项目之前,我无法使其正常工作。