【问题标题】:How can I t4 scaffold from powershell.exe?我如何从 powershell.exe t4 脚手架?
【发布时间】:2012-10-03 02:40:28
【问题描述】:

NuGet 的 PM 控制台非常棒,但您必须在 Visual Studio 中才能使用它。我之前问过这个问题没有任何答案,我很难相信没有关于这个主题的文档。

我有两个用户:用户 A 卖鞋,用户 B 卖汽车。每个人都有不同的财产需求。 如果我允许他们将所需的属性/数据类型写入他们各自的 Product.cs 实体,我如何使用 PowerShell.exe 来:

搭建控制器、视图、dbcontext 和存储库?

我知道之后我可以做一个 MSBuild,但是似乎没有办法使用 PowerShell 从一个 bat 文件来做 VS 2010 之外的脚手架?

任何见解将不胜感激。

【问题讨论】:

    标签: asp.net-mvc-3 powershell powershell-2.0


    【解决方案1】:

    经过几天的运气,我终于想通了。首先,不要使用任何 Microsoft 测试版,包括 Windows 8 开发人员版、PowerShell 3.0 和 VS 2011。一旦启动并运行 PowerShell 2.0:

    1.在 PS/v1.0 文件夹中添加一个 powershell.exe.config 文件:

    点击此链接获取脚本:http://connect.microsoft.com/PowerShell/feedback/details/525435/net-4-0-assemblies-and-powershell-v2

    重新启动 PowerShell 2.0,它现在将支持 4.0 框架。

    2。将执行策略设置为只需要对远程脚本进行签名:

    命令行:Set-ExecutionPolicy RemoteSigned

    3.导入所需的自定义 t4 脚手架(以便您可以使用 T4 脚手架):

    命令行:import-module C:\Users\Admin\Documents\"Visual Studio 2010"\Projects\MvcApplication1\packages\T4Scaffolding.1.0.5\tools\T4Scaffolding.NuGetServices.dll

    命令行:import-module C:\Users\Admin\Documents\"Visual Studio 2010"\Projects\MvcApplication1\packages\T4Scaffolding.1.0.5\tools\T4Scaffolding.dll

    4.现在调用你的 powershell 文件:

    命令行:C:\Users\Admin\Documents\"Visual Studio 2010"\Projects\MvcApplication1\MvcApplication1\CodeTemplates\Scaffolders\StevceScaffolders.AjaxGrid\StevceScaffolders.AjaxGrid.ps1

    (请务必引用任何包含空格的文件夹,例如“Visual Studio 2010”

    我当然认为,如果 MS 在他们的文档中对此提供一些见解会更好。

    【讨论】:

    • “首先,不要使用任何 Microsoft 测试版”——这是一个合理的建议 :) 我只在虚拟机中运行测试版,因为它们的卸载程序很少工作,而且通常没有升级路径到真正的发布版本。此外,+1 用于发布您的解决方案。当他们在 CodePlex 上折腾项目时,我觉得 MS 处于“让我们假装这是粗制滥造的、文档记录不佳的开源项目”模式。你几乎无法判断 NuGet 是不是一个 MS 项目,还是有人自己拼凑起来的,还是它的社区驱动的,或者是什么......
    【解决方案2】:

    在尝试从 powershell 运行它时,您处于难以踏足的领域,但这是可以想象的。

    我认为 T4 模板是由外部工具呈现的。我看不出有什么理由不能从 powershell 调用该 EXE,在要调用的 t4 模板的命令行上传递参数。生成的文件(或多个文件,请参阅 Entity Framework T4 示例了解如何编写多个文件)将在完成后由 t4 转换工具输出。

    您的各种不同文件类型将由不同的 t4 模板、Controller.t4、Views.t4、Dbcontext.t4 和 respositories.t4 处理。

    希望有帮助

    【讨论】:

    • 经过几天的运气,我终于想通了。
    猜你喜欢
    • 2014-11-23
    • 2016-05-01
    • 1970-01-01
    • 2020-03-03
    • 2012-04-13
    • 2020-11-21
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    相关资源
    最近更新 更多