Reputation: 1713
I'm trying to run a PowerShell script from my C# application. I know how to do so with an absolute path:
using (PowerShell pshell = PowerShell.Create())
{
pshell.AddScript( @"C:\Path\To\Webapp\psScript.ps1" );
pshell.Invoke();
}
What I don't know how to do is use a relative path. My psScript.ps1
is located in the same directory as my Visual Studio project, and I'd like to use a relative path (such as ./psScript.ps1
), so that when I publish/export my project to different computers, the path to the script doesn't become invalidated
Sooo, how do I use a relative path in the PowerShell.AddScript() method? Any help would be appreciated!
I looked here but this doesn't answer my question: PowerShell: Run command from script's directory
Upvotes: 4
Views: 7004
Reputation: 3201
Use this:
using (PowerShell pshell = PowerShell.Create())
{
string path=System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
pshell.AddScript( path+"\\psScript.ps1" );
pshell.Invoke();
}
This path is always relative to the root folder of your project.
Upvotes: 6
Reputation: 33381
Add your script to project and set Copy to output directory
property to Copy always
or Copy id newer
Upvotes: 3