C# ProcessStart()在应用程序服务中找不到文件名
此代码在本地运行良好,但返回系统在部署到Azure应用程序服务(.net core 3.0)时找不到指定的文件 我已根据评论的反馈更新了代码,但错误仍然存在。C# ProcessStart()在应用程序服务中找不到文件名,c#,.net-core,C#,.net Core,此代码在本地运行良好,但返回系统在部署到Azure应用程序服务(.net core 3.0)时找不到指定的文件 我已根据评论的反馈更新了代码,但错误仍然存在。 我错过了什么 var folder = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); var filePath = Path.Combine(folder, @"npm\mapshaper.cmd")
我错过了什么
var folder = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
var filePath = Path.Combine(folder, @"npm\mapshaper.cmd");
// Outputs: "C:\DWASFiles\Sites\MyWebApp\AppData\npm\mapshaper.cmd"
var process = new System.Diagnostics.Process
{
StartInfo =
{
FileName = filePath,
Arguments = @"arguments"
}
};
try
{
process.Start();
}
catch (Exception e)
{
return $"Running Process.Start. Path {filePath}: {e.Message}.";
}
应用程序服务尚不支持.net Core 3.0。您需要在自容器模式下部署,而不是使用硬编码路径,是否可以基于
AppData
的环境变量使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
。您可以附加剩余的路径来形成path till.cmd文件。谢谢user1672994,我一定会研究它的。但是它会改变实际输出吗?您不能回答AppData文件夹总是指向D:\local\AppData
。另外,有关其他信息,AppData中存储的文件是临时文件,这些文件不会在实例之间共享。如果要确保在实例之间共享文件,请使用指向D:\home
文件夹的持久化文件。建议的更改是否有效?否。请参阅更新的代码,但问题仍然存在