问题标签 [t4scaffolding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1228 浏览

reflection - 如何使用 T4 模板获取模型属性

我正在使用 T4Scaffolding,并尝试创建自定义 Scaffold 模板。它不是 asp.net 项目,也不是 MVC。

我的用户类:

在 .cs.t4 文件中,我需要获取用户属性,我尝试使用:

...

但它不起作用,我知道在 asp.net mvc 中我可以使用

asp.net 中的正确方法是什么???

感谢您的任何评论...

0 投票
2 回答
1250 浏览

c# - 如何在项目上使用 T4 自定义脚手架?

我正在使用T4Scaffolding来做一些 C# 代码生成。考虑以下项目结构:

项目结构
我在模板项目中创建了一个自定义脚手架。现在我想为Dummy项目运行它,但我得到了这个异常:

在此处输入图像描述

如何在项目上使用自定义脚手架?

问题是:我在 TFS 中有 20 个项目,我想在 1 个中心位置管理 t4 模板的代码。

0 投票
1 回答
1539 浏览

asp.net-mvc - 从 t4 脚手架模板访问我的模型中的元数据(数据注释)

如何从 T4 脚手架模板访问我的 asp.net mvc 模型类中的元数据(dataannotations 属性)?

我正在尝试读取 T4 模板中的 ScaffoldColumn 属性,因此它应该知道是否必须在索引视图中呈现某些列

谢谢

0 投票
1 回答
480 浏览

asp.net-mvc-3 - 即使文件不存在,MVC3/T4 自定义脚手架也会给出文件存在错误

我已经为 MVC3 编写了一个自定义脚手架,使用 T4 模板为作为参数传递给脚手架的数据库和表的删除存储过程搭建脚手架。当我运行脚手架时,会在正确的位置创建输出文件,但出现以下错误:

Invoke-ScaffoldTemplate:无法添加“UpdateCustomerCoupon.sql”。已存在具有该名称的文件。在 line:1 char:23 + param($c, $a) return 。<<<< $c @a + CategoryInfo : NotSpecified: (:) [Invoke-ScaffoldTemplate], COMException + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.InvokeScaffoldTemplateCmdlet

文件是否存在于输出位置并不重要。我每次都会收到这个错误。

这是脚手架的 PowerShell 脚本:

这是 T4 模板代码:

我通过在包管理器控制台中键入“ Scaffold DeleteSQL -DatabaseName $DatabaseName -TableName $TableName ”来调用脚手架。

我还尝试使用 -Force 选项调用脚手架,如下所示:“ Scaffold DeleteSQL -DatabaseName $DatabaseName -TableName $TableName -Force ”。我也使用了“ -Force true ”和“ -Force:true ”,但没有成功。还要注意 $Force 参数无论如何都设置为 true,所以我认为它应该默认覆盖,对吧?

我需要做什么才能摆脱这个错误?

谢谢您的帮助。

0 投票
0 回答
1819 浏览

asp.net-mvc - ASP.NET MVCScaffolding 很慢

我们尝试使用 ASP.NET MVC Scaffolding ( http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package , http:// mvcscaffolding.codeplex.com/)。很棒的工具,但是请任何建议,为什么它这么慢?空项目中简单模型的脚手架(如本教程中所述)大约需要 15 秒,这仍然可以接受,但是在我们根据自定义元数据属性添加了一些脚手架逻辑之后,具有一些的模型的脚手架 -多对多关系需要 5 分钟或更长时间,这使得它无法使用。无论如何要提高性能?

0 投票
1 回答
2361 浏览

powershell - 使用 PowerShell 自定义 T4 脚手架

我想创建一个使用任意PowerShell逻辑的自定义脚手架。它可以渲染T4 模板(如果需要,可以渲染多个模板),并输出结果:

  • 作为项目中的新文件
  • 作为插入现有类的新代码块
  • 我的 PowerShell 逻辑可以使用Visual Studio的“代码模型”API 以其他任意方式操作文件和代码元素。

如何使用 PowerShell 自定义 T4 脚手架?

0 投票
1 回答
128 浏览

powershell - 创建可重复使用的脚手架

我按照使用T4 Scaffolding包创建自定义脚手架的说明进行操作,效果很好。然而,在这个过程中,我发现我需要构建许多可重用的组件,这些组件将在多个脚手架和模板之间共享。

我知道我可以构建一个类库并在 GAC 中注册它以使其可供 powershell 脚本和 T4 模板访问,但在团队环境中,这并不总是可行的。我更愿意将可重用组件签入源代码管理并以某种方式使其可访问。

我采用的一种方法是将 T4 模板拆分为多个文件,然后include将它们全部放入主模板中。

但是,如果我在任何一个模板中定义一个类,该类将成为一个嵌套类,因此不能是静态的(例如)。

有没有办法构建可重用的类、方法、扩展并使自定义脚手架可以访问它们,而无需将它们安装到 GAC?T4Scaffolding 包具有许多可在自定义脚手架中访问的实用功能。他们是如何做到的呢?

0 投票
2 回答
1073 浏览

asp.net-mvc-4 - 在 VS2012 中使用 Package Manager Consoler 安装 Mvc Scaffolding 包时出错

我是使用包管理器控制台的新手。我需要安装Autofac.Mvc3MvcScaffolding打包。我尝试通过运行以下命令使用包管理器控制台进行安装。

但我得到了以下错误。

正在尝试解决依赖项“Autofac (≥ 2.6.3.862)”。
安装包:底层连接已关闭:发送时发生意外错误。
在 line:1 char:16
+ Install-Package <<<< Autofac.Mvc3
+ CategoryInfo: NotSpecified: (:) [Install-Package], WebException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

在安装时MvcScaffolding

它抛出这个错误。

正在尝试解决依赖项“T4Scaffolding”。
安装包:底层连接已关闭:发送时发生意外错误。
在 line:1 char:16
+ Install-Package <<<< MvcScaffolding
+ CategoryInfo : NotSpecified: (:) [Install-Package], WebException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

在 VS2012 中创建 MVC4 应用程序时,我在“packages”文件夹中确实有一些预安装的 dll,但它不包含 MvcScaffolding/Au​​tofac。

请告诉我必须将它们安装在“packages”文件夹中,还是通过运行上述命令进行安装。

请帮忙..提前谢谢:)

0 投票
1 回答
3085 浏览

debugging - Set-DefaultScaffolder:调试 T4Scaffolding.Core Nuget 包时无法获取 EnvDTE.DTE 的实例 - 高级 Powershell 调试

我正在尝试从 Visual Studio 2012 外部调试 T4Scaffolding.Core Nuget 包。我正在使用安装了 Powershell 3.0 的 Powershell ISE,并在 CLRVersion 4.0.30319 下运行。

我首先导入几个 Nuget 相关项: - Profile.ps1 - nuget.psm1 - NuGet.Cmdlets.dll

我还将当前位置设置为 set-location "\ClassLibrary1\" 并获得了当前运行的唯一 DTE 实例(我之前在 VS 2012 中打开了 MySolution,其中有一个类库和一个 asp.net MVC 4 应用程序)

我跳过了从 NuGet.Cmdlets.dll 二进制模块导入 Get-Project cmdlet,因此我可以创建自己的 cmdlet:Get-Project 以这种方式获取我的 MVC 项目:

我可以进入 init.ps1: \packages\T4Scaffolding.Core.1.0.0\tools\init.ps1 但代码在执行时失败:

我还尝试指向我的 $project 名称(省略 -SolutionWide),结果相同:

我可以观察到 EnvDTE.dll 通过使用以下方法加载到 Powershell ISE 环境中:

希望有人会对实现相同的目标感兴趣(逐行通过 Visual Studio 外部 Nuget 包的 init.ps1 和 install.ps1)。

谢谢,拉德

堆栈溢出:我用作起点的问题

0 投票
1 回答
571 浏览

visual-studio-2010 - Visual Studio nuget 包管理器可以排除预发布包吗?

我正在使用一个包从 Razor 视图调用者 MvcMailer 生成电子邮件。这个包依赖于 T4Scaffolding (>= 1.0.7)。T4Scaffolding 又依赖于 EntityFramework (>= 4.1.10311.0)。

这应该不是问题,因为我的项目中有 Entity Framework 5.0.0 nuget。

出于某种原因,除了我现有的 EF nuget 之外,Entity Framework 6.0.0-alpha1 (Prerelease) 作为 T4 脚手架的依赖项被导入。这搞砸了 EF 迁移命令,因为包管理器控制台对它应该使用哪个版本的 EF 感到困惑。

我不确定问题出在哪里。我如何告诉 T4Scaffolding 它已经具备所需的依赖项?