[英]How to deploy a Nuget package that provides a Powershell command like EF's Scaffold-DbContext?
假設我正在編寫一個為.NET項目生成文件的自動化腳本 (因為.NET Core項目不再支持T4) 。 現在我想使用Nuget部署它,所以我可以使用類似於Entity Framework的Scaffold-DbContext
。 我使用Console App編寫的項目,但如果需要,我可以輕松地將其轉移到其他類型。
我試着查看Entity Framework的源代碼,看看他們正在打包一個init.ps1
文件,以便添加命令,實現就在這里 。
對不起,但這是我可以去的。 有沒有關於如何做到這一點的文件? 或者,如果可能,請告訴我我的情況,如果我想運行此命令,如何調用我的.NET Core項目?
Scaffold-ViewModels -Input Models\\Entities -Output Models\\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
等)。
如果可能的話,我們將非常感謝Hello World創建自動化腳本的教程/入門。
如果我理解你,你想要實現這個用例:
“在nuget包安裝上,我想啟動一個解析項目源和包裝新生成文件的ps腳本”?
您無法以這種方式模擬TT腳本傳送,因為TT已經作為VS擴展安裝(並且已集成到VS)。
通過NUGET傳送TT腳本很簡單,因為在安裝時只需要將tt文件放到項目文件夾中。
對於高級方案,您需要自定義dotnet
工具命令https://docs.microsoft.com/en-us/dotnet/core/tools/extensibility或VS Extension或兩者。
上次我使用它(幾年前), init.ps1
文件只是一個powershell腳本,在安裝包時在項目上下文的visual studio中運行。 我假設EF很復雜,需要二進制文件,但您可以使用所有常規的PowerShell cmdlet來操作項目:
想想New-Item
, Copy-Item
, Get-ChildItem
, Test-Path
, Add-Content
等。
有關更多命令,請查看https://docs.microsoft.com/en-gb/powershell/module/Microsoft.PowerShell.Management/?view=powershell-6 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.