>假设我正在编写一个为 .NET 项目生成文件的自动化脚本
Scaffold-DbContext
的命令。我使用控制台应用程序编写的项目,但如果需要,我可以轻松地将其转换为其他类型。
我尝试查看实体框架的源代码,看到它们正在打包一个init.ps1
文件以添加命令,实现在此处。
对不起,但这是我能做到的。是否有有关如何执行此操作的文档?或者,如果可能的话,请告诉我,如果我想运行此命令,如何调用我的 .NET Core 项目?
Scaffold-ViewModels -Input ModelsEntities -Output ModelsViewModels
编辑:经过进一步调查,我看到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
等(。
如果可能,请提供有关 Hello World 的教程/入门,以便从 Nuget 创建自动化脚本。
如果我理解正确,您想实现此用例:
"在 nuget 包安装中,我想启动一个解析项目源代码并构建新的生成文件的 ps 脚本"?
您无法以这种方式模拟 TT 脚本交付,因为 TT 是已经作为 VS 扩展安装(并集成到 VS
(的东西。通过 NUGET 交付 TT 脚本很简单,因为在安装时只需要将 tt 文件放入项目文件夹。
对于高级方案,需要自定义dotnet
工具命令 https://learn.microsoft.com/en-us/dotnet/core/tools/extensibility 或 VS 扩展或两者兼而有之。
上次我使用它时(几年前(,init.ps1
文件只是一个Powershell脚本,当您安装包时,它会在项目上下文中的Visual Studio中运行。我假设 EF 足够复杂,需要二进制文件,但您可以使用所有常规的 powershell cmdlet 来操作项目:
想想New-Item
、Copy-Item
、Get-ChildItem
、Test-Path
、Add-Content
等。
查看此处 https://learn.microsoft.com/en-gb/powershell/module/Microsoft.PowerShell.Management/?view=powershell-6 以获取更多命令。