2011-05-25 4 views
17

В Visual Studio 2010 я хочу создать шаблон проекта, который включает ссылки на два файла, которые должны существовать в системе. Один из них - общий файл AssemblyInfo.cs. Другим является файл ключа с сильным именем (* .snk).Как создать шаблон проекта Visual Studio, который включает связанные файлы?

Мне нужно, чтобы эти ссылки были Относительно, потому что рабочее пространство каждого разработчика будет настроено по-разному. Возможно ли, чтобы шаблон проекта каким-то образом определял, где эти файлы находятся в среде каждого разработчика?

Из-за чтения о шаблонах это звучит, как будто они довольно статичны, поэтому я задаюсь вопросом, можно ли сделать трюки, чтобы сделать что-то подобное. Если ничего другого, я могу добавить фиктивные ссылки, которые вызовут ошибки компиляции и заставят разработчика зацепить эти файлы. Но если я смогу сделать это для них, это будет лучше.

+0

Вы когда-нибудь находили решение? –

ответ

1

Вы можете попытаться интегрировать Мастер в свой шаблон проекта и установить пути к связанным файлам. Если я правильно помню, вам не нужно создавать User Integr; вам нужно только указать правильные замены в заменах Dictionary, а VS заменит значения в вашем файле шаблона. См. this или this для получения дополнительной информации.

2

Microsoft подтвердила, что это ошибка с моделью расширяемости и шаблонами проектов. Мне удалось обойти это, используя IWizard. Я добавил следующий код в RunFinished методе моей реализации IWizard:

//Get linked file directory 
    string coreDir = Path.GetDirectoryName(MyProject.FullName); 

    //Data folder 
    ProjectItem propertiesProjectItem = slSharedProject.ProjectItems.Cast<ProjectItem>().Where(p => p.Name == "Data").First(); 
    propertiesProjectItem.ProjectItems.AddFromFile(coreDir + @"\Service\TheFileIWantToLink.cs"); 

Этот код ссылки в копии TheFileIWantToLink.cs файла на мой общий проект Silverlight (slSharedProject).

17

Вы должны установить свойство CreateInPlace на true в vstemplate. documentation говорит

Указывает, следует ли создать проект и выполнить замену параметров в указанном месте, или выполнить замену параметров во временном месте, а затем сохранить проект в указанном месте.

Если вы хотите относительные пути к работе, вам потребуется замена параметра происходит в том месте, где вы создаете проект, не во временном месте.

+1

Пятно на то, что мне нужно, приветствия. Просто короткое замечание о документации MSDN, в нем указано, что значение по умолчанию истинно, но оно, по-видимому, является ложным для шаблонов проектов VS 2012. –

+0

CreateInPlace не работает для шаблонов проектов VC++. Подтверждено как ошибка: http://connect.microsoft.com/VisualStudio/feedback/details/789683/problem-with-createinplace-tag-in-project-template – makhdumi

Смежные вопросы