使用PowerShell调用Visual Studio方法
我正在尝试编写一个powershell脚本来调用位于我的Visual Studio(2010)解决方案中的方法。 调用的语法是什么,例如,类似的方法
public void CreateData(string s, int i)
?
您可以将类库项目编译为dll,然后使用powershell中的reflection加载dll。 这是一个例子:
c#代码:
public class MyClass { public void CreateData(string s, int i) { // your logic here } }
powershell代码:
$lib = [Reflection.Assembly]::LoadFile("C:\path\to\MyClass.dll") $obj = new-object MyClass $result = $obj.CreateData("s_value",5)
此代码假定您的类名为“MyClass”。 您可能必须先在powershell中运行set-executionpolicy RemoteSigned。
您需要构建C#类并使用类似InvokeCSharp的方法来调用CreateData方法
请参阅链接以获得一个好例子http://vincenth.net/blog/archive/2009/10/27/call-inline-c-from-powershell-with-invokecsharp.aspx
我会创建一个这样的程序:
class Program { static void Main(string[] args) { if(args.Length > 1) CreateData(args[0], int.Parse(args[1])); } public static void CreateData(string s, int i) { File.WriteAllText(@"C:\data.txt", string.Format("This is some data: s = {0} i = {1}", s, i)); } }
然后编译程序后我有可执行文件“ConsoleApp.exe”
我启动了以下的PowerShell脚本:
& "Path_Of_The_Program\ConsoleApp.exe" "MyText" 100
它成功地将数据写入我的文件中。