2012-04-04 2 views
0

Я хочу создать шаблон элемента Visual Studio, который генерирует элемент (например, пользовательскую .aspx-страницу) в решении, выполнив шаблон T4, добавив его в решение. Для этого я использую эту ссылку: http://msdn.microsoft.com/en-us/library/gg586947.aspx Может ли кто-нибудь сказать мне, как получить поставщика услуг, о котором говорится в коде в приведенной выше ссылке. Чтобы решить эту проблему, я написал:Вызов преобразования текста в VS-расширение

EnvDTE.DTE DTE = (EnvDTE.DTE) Package.GetGlobalService (TypeOf (EnvDTE.DTE)); // Получить поставщика услуг - как это сделать, зависит от контекста:

IServiceProvider ServiceProvider = новый Microsoft.VisualStudio.Shell.ServiceProvider (DTE в Microsoft.VisualStudio.OLE.Interop.IServiceProvider);

Но Его дает мне ошибку пустого исключения arguement, поскольку переменная DTE остается пустым. Почему это null? Я не знаю, делаю ли я это правильно или неправильно. Пожалуйста, предложите, как мне выполнить serviceprovider, указанный в коде в приведенной выше ссылке, чтобы я мог двигаться вперед. Если возможно, предоставьте мне пример кода.

Пожалуйста, укажите,

Спасибо, Mayur

ответ

0

Вы просто должны быть в состоянии непосредственно запросить STextTemplating с помощью GetGlobalService в Visual Studio 2010.

+0

Спасибо Garath, мог бы вы предоставить мне код или любой пример проект. Я сделал то, что вы предложили, но все же я получаю значение ITextTemplating T4 как null. Код, который я написал, выглядит следующим образом: IServiceProvider serviceProvider = Package.GetGlobalService (typeof (STextTemplating)) как IServiceProvider; ITextTemplating t4 = serviceProvider.GetService (typeof (STextTemplating)) как ITextTemplating; – Mayur

+0

Даже я пробовал: ITextTemplating t4 = Package.GetGlobalService (typeof (STextTemplating)) как ITextTemplating; ** Если возможно, plz предоставит мне код или ссылку, которые помогут мне выбраться из этого ... – Mayur

+0

Мне интересно, используете ли вы VS2008? Кажется, я помню, что Package.GetGlobalService не работал так хорошо в этой версии. – GarethJ

0

Может ли это быть связано с различными версиями сборки I использовали в этом проекте. Приложение, которое я разрабатываю, находится в VS2010, и я попытался использовать сборки с версиями 10.0.0 и для которых версия RunTime 4.0. Но есть несколько DLL, которые я не мог найти с версией 10.0.0.0 и версией RunTime как v4.0. Это то, что меня раздражает? Я попытался добавить новые dll с требуемыми версиями, но у меня нет этих dll с версией 10.0, а также я не получил его нигде в сети. Если это причина, то plz сообщит мне, где я получу эти DLL ...? Библиотеки DLL я использовал следующие:

  1. Microsoft.VisualStudio.OLE.Interop, vesrion: 7.1.40304.0, RunTime Версия: v1.1.4322

  2. Microsoft.VisualStudio.Shell, Версия: 10,0 .0.0, RunTime Версия: v4.0.30319,

  3. microsoft.visualstudio.shell.interop.8.0, Версия: 8.0.0.0, RuntimeVersion: v1.1.4322

  4. Microsoft.VisualStudio.TemplateWizardInterface, Версия: 8.0 .0.0, Run Время Версия: v2.0.50727

  5. Microsoft.VisualStudio.TextTemplating, Версия: 9.0.0.0, время выполнения Версия: v2.0.50727

  6. Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Версия: 10.0.0.0 , RunTime Версия: v4.0.30319

  7. Microsoft.VisualStudio.TextTemplating.VSHost.10.0, Версия: 10.0.0.0, RunTime Версия: v4.0.30319

Пожалуйста, предложите ...

+0

Это, безусловно, остановило бы его работу, вы должны найти 10 версий всех из них в SDK Visual Studio (скачать с microsoft.com) в VisualStudioIntegration \ Common \ Assemblies \ v4.0 – GarethJ

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

  • Нет связанных вопросов^_^