Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用powershell调用Visual Studio方法_C#_.net_Powershell - Fatal编程技术网

C# 使用powershell调用Visual Studio方法

C# 使用powershell调用Visual Studio方法,c#,.net,powershell,C#,.net,Powershell,我正在尝试编写一个powershell脚本来调用位于我的Visual Studio(2010)解决方案中的方法。 例如,调用以下方法的语法是什么 public void CreateData(string s, int i) ?您需要构建C#类,并使用类似InvokeCSharp的东西来调用CreateData方法 请查看链接以获取一个好的示例您需要构建C#类,并使用类似InvokeCSharp的东西来调用CreateData方法 请参见链接以获取一个好的示例我将创建一个类似这样的程序: cl

我正在尝试编写一个powershell脚本来调用位于我的Visual Studio(2010)解决方案中的方法。 例如,调用以下方法的语法是什么

public void CreateData(string s, int i)

您需要构建C#类,并使用类似InvokeCSharp的东西来调用CreateData方法


请查看链接以获取一个好的示例

您需要构建C#类,并使用类似InvokeCSharp的东西来调用CreateData方法


请参见链接以获取一个好的示例

我将创建一个类似这样的程序:

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

它成功地将数据写入我的文件中。

我将创建一个如下程序:

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

它成功地将数据写入我的文件。

您可以将类库项目编译成dll,然后使用powershell中的反射加载dll。以下是一个例子:

c#代码:

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。

您可以将类库项目编译成dll,然后使用powershell中的反射加载dll。以下是一个例子:

c#代码:

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。

谢谢您的回复。我可以用你给我的语法打开我的类,但是我不能调用特定的方法。我试着像myclass.cs/CreateData那样去做,但没有成功。有什么想法吗?你需要先编译你的类,然后用.exe文件路径启动命令。您可以使用csc命令行实用程序()构建类,感谢您的响应。我可以用你给我的语法打开我的类,但是我不能调用特定的方法。我试着像myclass.cs/CreateData那样去做,但没有成功。有什么想法吗?你需要先编译你的类,然后用.exe文件路径启动命令。您可以使用csc命令行实用程序()构建类如果要指定DLL的相对路径,您可以使用
LoadFrom
,如果要指定DLL的相对路径,您可以使用
LoadFrom