visual-studio - Nuget - 包管理器控制台的编写工具(自定义 cmdlet)

标签 visual-studio console nuget nuget-package

我已经安装了 nuget 包管理器,我真的很喜欢 mvc-scaffold 扩展。我想为我的项目编写类似的工具。

有没有我可以学习的 nuget 的 API 引用或一些文档? TIA 的任何建议。

编辑:
问题已经“回答”了(再次感谢),以下是一些有用的链接:

  • http://nuget.codeplex.com/releases/view/59864 - 包资源管理器(下载 + 查看包内的内容 - 感谢上帝在 mvc 脚手架 ps 脚本中的评论:))
  • http://channel9.msdn.com/Series/mvcConf/mvcConf-2-Steve-Sanderson-MvcScaffolding - 来自 mvcConf2 的视频
  • 当然还有史蒂夫桑德森的博客:http://blog.stevensanderson.com/
  • 最佳答案

    我写了您在问题中提到的 MvcScaffolding 的当前版本。以下是将 PowerShell cmdlet 添加到包管理器控制台的方式:

  • Cmdlet 用 C# 编写并编译成 .NET 程序集(参见 http://msdn.microsoft.com/en-us/magazine/cc163293.aspx)
  • .NET 程序集包含在 MvcScaffolding 的“工具”文件夹中(参见 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory)
  • MvcScaffolding 还包含一个 init.ps1 文件,每次打开包含它的解决方案时,NuGet 都会运行该文件(也在 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Automatically_Running_PowerShell_Scripts_During_Package_Installation_and_Removal 中进行了描述)。此脚本使用 PowerShell“Import-Module”命令从 .NET 程序集中导入 cmdlet,使其在控制台中可用。

  • 请注意,实际上没有必要用 C# 编写 cmdlet 并调用 Import-Module。更简单的替代方法是在 PowerShell 中编写它们(请参阅 http://technet.microsoft.com/en-us/magazine/ff677563.aspx )并在 NuGet 包的 init.ps1 文件中内联定义它们。

    或者,如果您的问题是关于如何将自定义脚手架添加到 MvcScaffolding(例如,您可以说“Scaffold MyCustomThing -somecustomparams”),则使用命令“Scaffold CustomScaffolder MyCustomThing”,然后编辑出现在您的 CodeTemplates/Scaffolders 文件夹。我很快会在博客上详细介绍这方面的内容。

    关于visual-studio - Nuget - 包管理器控制台的编写工具(自定义 cmdlet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077711/

    相关文章:

    c# - 自定义数据可视化工具中的可视化表达

    linux - 将程序的控制台输出保存到文件 - 不简单 2>&1

    visual-studio - Xamarin.Android:包 XX 与 monoandroid81 不兼容(MonoAndroid,版本=v8.1)

    c# - Entity Framework 迁移 NuGet 错误

    .net-core - 如何避免 NuGet 出现兼容性警告?

    visual-studio - Visual Studio 2008 中的 Visual Studio 2010(测试版 2)解决方案

    c# - 在解决方案资源管理器中的文件下添加文件

    Android Developer Console 屏幕截图被裁剪。还有谁有相同的问题吗?建议?

    c - 从文件中读取字符串时获取垃圾值

    c++ - 在 PDCurses 中设置整个窗口的背景颜色