Я пытаюсь запустить процесс, вызывая dll, созданную из консольного приложения .NET Core (2.1) из .NET Core API.Я попробовал это с помощью создания процесса.Ниже показан код.
string filePath = @"C:\Projects\MyProject.Api\bin\Debug\netcoreapp2.1\";
var startInfo = new ProcessStartInfo
{
FileName = "dotnet",
WorkingDirectory = filePath,
Arguments = "ReportGeneratorApp.dll",
UseShellExecute = false,
RedirectStandardOutput = false,
RedirectStandardError = false,
CreateNoWindow = true,
};
using (Process process = new Process())
{
process.StartInfo = startInfo;
process.Start(); // process.WaitForExit();
}
И в основном методе ReportGeneratorApp я пытаюсь создать файл в файловой системе.
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
for (int i = 0; i < args.Length; i++)
{
Console.WriteLine(args[i]);
}
string path = @"D:\MyTest.txt";
Console.ReadLine();
try
{
// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}
// Create the file.
using (FileStream fs = File.Create(path))
{
byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file." + DateTime.Now.ToString("dd MMM yyyy HH:mm:ss"));
// Add some information to the file.
fs.Write(info, 0, info.Length);
}
// Open the stream and read it back.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
Если я запускаю ReportGeneratorApp из cmd, он работает.Но не тогда, когда я звоню из веб-API.Любые подсказки?