我有一個.NET EXE文件,有兩個'新'方法;一種新方法接受四個參數,另一個不接受任何參數。「新的」方法「無法找到過載...」 - Powershell reflection.assembly實例化一個VB.NET類
最終目標是能夠通過Powershell或其他.NET應用程序引用此EXE,以將這4個參數傳遞給它,因此無需與窗口交互,同時仍能夠手動啓動應用程序並與它進行交互。
我的方法如下(目前沒有做任何事情瓦特/參數,還沒有得到那麼遠):
Public Sub New(OrganizationName As String, ExpirationDate As String, ProductID As String, SerialNumber As String)
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
我從一個引用編譯EXE Powershell腳本在時刻測試這個,並且似乎在這樣做時遇到了麻煩。
當我嘗試將這些參數傳遞給該類時,出現一條錯誤消息,指出使用該參數的數量不會超載。
我的PowerShell腳本:
[reflection.assembly]::LoadFile("app.exe")
$App = New-Object App.AppMain("Test", "01/01/2017", "1001", "1234")
在上面的例子中,「APP.EXE」是我編譯EXE的完整的文件路徑,並「應用」是埋入式的項目名稱。 'AppMain'是應用程序的主要類,它是'AppMain.vb'文件中的類名。
如果我不發送參數,並且稍後可以在$ App對象上執行'ShowDialog()'來調出窗體,但不要過去New-Object行,我嘗試發送參數。
要清楚我的問題是我應該如何發送參數構造函數(新建)方法在我的VB.NET應用程序,當我嘗試調用在PowerShell中的類?
最後,我意識到我正在重命名正在生成的已編譯的EXE之前,在同一個文件夾中調用過時的EXE文件....但您的回答非常好。謝謝! – schizoid04
優秀!這確實是嘗試將自定義代碼加載到PowerShell的挑戰,以及IDE真正能夠幫助解決的問題。 – PSGuy