В папке установки я предполагаю, что вы имеете в виду, где установлен Xamarin студии.
Я также предполагаю, что вы не можете распространять файлы с вашим добавлением, поскольку они являются частью Xamarin Studio и недоступны только с помощью MonoDevelop.
Нет свойства/параметра, указывающего, где Xamarin Studio установлен, насколько мне известно.
Атрибут src в RawFile не поддерживает замену параметров, поэтому даже если бы был параметр, указывающий на место установки Xamarin Studio, его нельзя было использовать.
Таким образом, вы остались с двумя вариантами, которые я могу думать:
- Реализовать мастера для project template.
- Внесите свой собственный шаблон RawFile.
Мастер шаблона проекта означал бы, что вы можете поддерживать только Xamarin Studio 5.9 и выше. Так что пока я проигнорирую это. Оба вышеуказанных варианта аналогичны тем, как они реализованы.
Для вашей собственной версии шаблона RawFile вы определяете класс для использования в файле addin.xml:
<Extension path = "/MonoDevelop/Ide/FileTemplateTypes">
<FileTemplateType name = "RawFileNoExtension" class = "MyAddin.MyRawFileExtensionTemplate"/>
</Extension>
Тогда вы можете создать свой собственный внутренний файл класса шаблона. Вот пример, взятый из существующего RawFileDescriptionTemplate, но я удалил некоторые обработки ошибок:
public class MyRawFileExtensionTemplate : RawFileDescriptionTemplate
{
FilePath contentSrcFile;
public override void Load (XmlElement filenode, FilePath baseDirectory)
{
base.Load (filenode, baseDirectory);
var srcAtt = filenode.Attributes["src"];
// TODO: Replace src with path to Xamarin Studio.
contentSrcFile = FileService.MakePathSeparatorsNative (srcAtt.Value);
contentSrcFile = contentSrcFile.ToAbsolute (baseDirectory);
}
public override Stream CreateFileContent (SolutionItem policyParent, Project project, string language,
string fileName, string identifier)
{
return File.OpenRead (contentSrcFile);
}
}
Вам нужно будет заменить раздел TODO с кодом, чтобы найти, где Xamarin студия установлена. Один из способов сделать это - найти тип в одной из ассамблей Xamarin Studio, а затем получить местоположение сборки.