Образец SubSonic ASP.NET MVC в Visual Web Developer Express

Вы используете переменную $data для извлечения DocTracking данных,

далее вы перезаписываете $data массивом, который не содержит id

, также вы можете конвертировать результат в массиве с помощью функции toArray ()

$data = DocTracking::get()->toArray();

7
задан SamWM 24 April 2009 в 16:55
поделиться

3 ответа

Вслед за комментарием Адама ВЫ МОЖЕТЕ сделать это в VS Express, но, как предложил Адам, в шаблон требуются изменения.

Visual Studio требует используется только для получения пути к активному проекту, который затем используется для поиска файла web.config и пути app_data. Поскольку эти значения обычно известны в рамках проекта, мы можем жестко запрограммировать заменяющие значения

Обновите файл _Settings.tt следующим образом:

...
const string ConnectionStringName="Chinook";
//Use this when not building inside visual studio standard or higher
//make sure to include the trailing backslash!
const string ProjectPathDefault="c:\\path\\to\\project\\";

...

public EnvDTE.Project GetCurrentProject()  {

        if (Host is IServiceProvider)
        {
            IServiceProvider hostServiceProvider = (IServiceProvider)Host;
            if (hostServiceProvider == null)
                throw new Exception("Host property returned unexpected value (null)");

            EnvDTE.DTE dte = (EnvDTE.DTE)hostServiceProvider.GetService(typeof(EnvDTE.DTE));
            if (dte == null)
                throw new Exception("Unable to retrieve EnvDTE.DTE");

            Array activeSolutionProjects = (Array)dte.ActiveSolutionProjects;
            if (activeSolutionProjects == null)
                throw new Exception("DTE.ActiveSolutionProjects returned null");

            EnvDTE.Project dteProject = (EnvDTE.Project)activeSolutionProjects.GetValue(0);
            if (dteProject == null)
                throw new Exception("DTE.ActiveSolutionProjects[0] returned null");

            return dteProject;
         }
         return null;
}

...

public string GetConfigPath(){
        EnvDTE.Project project = GetCurrentProject();
        if (project != null)
        {
            foreach(EnvDTE.ProjectItem item in project.ProjectItems)
            {
             // if it is the configuration, then open it up
             if(string.Compare(item.Name, "Web.config", true) == 0)
             {
              System.IO.FileInfo info =
                new System.IO.FileInfo(project.FullName);
                return info.Directory.FullName + "\\" + item.Name;
             }
            }
            return "";
        }
        else
        {
            return ProjectPathDefault+"web.config";
        }
    }

    public string GetDataDirectory(){
        EnvDTE.Project project=GetCurrentProject();
        if (project != null)
        {
            return System.IO.Path.GetDirectoryName(project.FileName)+"\\App_Data\\";
        }
        else
        {
            return ProjectPathDefault+"App_Data\\";
        }
    }
...

Затем используйте функцию VS External Tools для настройки инструмента T4 (Инструменты-> Внешние инструменты) : Задайте эти свойства:

  • Заголовок: T4
  • Команда: C: \ Program Files \ Common Files \ Microsoft Shared \ TextTemplating \ 1.2 \ TextTransform.exe
  • Аргументы: $ (ProjectDir) \ Models \ Classes.tt
  • Исходный каталог: $ (ProjectDir)
  • Использовать окно вывода и Необходимо проверить запрос аргументов .

Нажмите ОК, а затем запустите вновь созданный инструмент из меню Инструменты-> Внешние инструменты.

10
ответ дан 6 December 2019 в 12:54
поделиться

Оказывается, и я не знал этого, что шаблоны T4 работают только на VS Standard или лучше :(. Я думал, что когда-то это было доступно с VS SDK - возможно, вы могли бы найти его там: (

4
ответ дан 6 December 2019 в 12:54
поделиться

Существует инструмент командной строки TextTransform, который вы можете использовать:

[ http://msdn.microsoft.com/en-us/library/bb126461.aspx] [1]

По умолчанию в версиях Express он устанавливается в C: \ Program Files \ Common Files \ Microsoft Shared \ TextTemplating \ 1.2

Однако шаблоны MVC требуют запуска шаблонов t4 в Visual Studio, поэтому я уверен, что, по крайней мере, без патча для шаблонов вы не сможете заставить их работать .

2
ответ дан 6 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: