假设我正在编写一个为 .NET 项目生成文件的自动化脚本 (因为 .NET Core 项目不再支持 T4)。现在我想使用 Nuget 部署它,所以我可以使用类似于 Entity Framework 的 Scaffold-DbContext
的命令。我使用控制台应用程序编写的项目,但如果需要,我可以轻松地将其转移到其他类型。
我试着查看 Entity Framework 的源代码,发现他们正在打包一个 init.ps1
文件以添加命令,实现在 here 中.
抱歉,这是我能做到的。是否有关于如何执行此操作的文档?或者,如果可能的话,请根据我的情况告诉我,如果我想运行此命令,我该如何调用我的 .NET Core 项目?
Scaffold-ViewModels - 输入模型\实体 - 输出模型\ViewModels
编辑:经过进一步调查,我发现 EF 正在将已编译的二进制文件打包在其文件夹中:
<files>
<file src="lib\**\*" target="lib/" />
<file src="tools\**\*" target="tools/"/>
<file src="$targetDir$*.psd1" target="tools/"/>
<file src="../ef/bin/$configuration$/net461/ef.exe" target="tools/net461/any/" />
他们的脚本正在执行带有附加参数的 ef.exe
。我的问题是:关于它的任何文档?参数是什么? (就像在他们的脚本中一样,它们包括 $env
等)。
如果可能,我们将不胜感激用于从 Nuget 创建自动化脚本的 Hello World 教程/入门。
最佳答案
如果我对你的理解是正确的,你想实现这个用例:
“在安装 nuget 包时,我想启动一个 ps 脚本来解析项目源并创建新生成的文件”?
您不能以这种方式模拟 TT 脚本传递,因为 TT 已经作为 VS extension 安装了。 (并集成到 VS)。
通过 NUGET 交付 TT 脚本很简单,因为在安装时只需将 tt 文件放入项目文件夹即可。
对于高级场景,您需要自定义 dotnet
工具命令
https://learn.microsoft.com/en-us/dotnet/core/tools/extensibility
或 VS 扩展或两者。
关于c# - 如何部署像 EF 的 Scaffold-DbContext 这样提供 Powershell 命令的 Nuget 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658233/