У меня есть скрипт Powershell, который я хочу запустить, но мне нужно сослаться на System.Management.Automation. Я сделал это с помощью VS 2018 с помощью диспетчера NuGet. Тем не менее, я хочу сделать это, не используя VS и весь другой автоматически сгенерированный код.
Так что в этом случае у меня есть IIS-сервер, на котором живет простой код .aspx и .aspx.cs. Идея в том, что когда пользователь отправляет форму, скрипт PS запускается. Как я могу ссылаться на .dll в .aspx.cs? Нужно ли добавлять .dll в папку System32 \ inetsrv? Или мне нужна папка web.config, сообщающая .cs, где находятся дополнительные файлы .dll?
Заранее спасибо.
My .aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="default.aspx.cs" Inherits="StrategicMapping.View"%>
<html>
<head>
<meta charset=utf-8 />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.5">
<title>Title</title>
</head>
<body>
<form action="https://server/default.aspx/ReadLinksDatabase" method="post">
<input type="submit"/>
</form>
</body>
</html>
My. aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Management.Automation;
namespace StrategicMapping {
public partial class View : System.Web.UI.Page {
[System.Web.Services.WebMethod]
public static void ReadLinksDatabase()
{
// Initialize PowerShell engine
var shell = PowerShell.Create();
// Add the script to the PowerShell object
shell.Commands.AddScript("powershell.ps1");
// Execute the script
var results = shell.Invoke();
return;
}
}
}