WPF Using .Net 3.1 - Process.Start Excel File Error: "The specified executable is not a valid application for this OS platform."
WPF Using .Net 3.1 - Process.Start Excel File Error: "The specified executable is not a valid application for this OS platform."
我正在尝试在 WPF .NET Core 3.1 应用程序中打开 Excel 文件 (.xlsx
)。使用 Winforms,我可以做到
process.start("Resources/test.xlsx")
文件将打开。
在 WPF 应用程序中执行相同的操作会导致错误
The specified executable is not a valid application for this OS platform
我使用相同的代码并使用两个应用程序打开相同的文件。只有 Winforms 应用程序可以工作,WPF 将抛出该错误。
是否有使用 .Net 3 中的 System.Diagnostics.Process.Start
处理打开文件的新方法?
进一步查看,似乎在 .Net Core 中 UseShellExecute
值默认为 false。手动将其设置为 true 解决了这个问题。这是我用来发现此修复程序的博客文章:https://jeremybytes.blogspot.com/2019/08/converting-net-framework-to-net-core.html
喜欢这个
private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)
{
// Old way (.NET Framework 4.8)
// string path = "Resources/test.xlsx";
// Process.Start(path);
// New way (.NET 6)
ProcessStartInfo psInfo = new ProcessStartInfo
{
FileName = "Resources/test.xlsx",
UseShellExecute = true
};
Process.Start(psInfo);
}
我正在尝试在 WPF .NET Core 3.1 应用程序中打开 Excel 文件 (.xlsx
)。使用 Winforms,我可以做到
process.start("Resources/test.xlsx")
文件将打开。
在 WPF 应用程序中执行相同的操作会导致错误
The specified executable is not a valid application for this OS platform
我使用相同的代码并使用两个应用程序打开相同的文件。只有 Winforms 应用程序可以工作,WPF 将抛出该错误。
是否有使用 .Net 3 中的 System.Diagnostics.Process.Start
处理打开文件的新方法?
进一步查看,似乎在 .Net Core 中 UseShellExecute
值默认为 false。手动将其设置为 true 解决了这个问题。这是我用来发现此修复程序的博客文章:https://jeremybytes.blogspot.com/2019/08/converting-net-framework-to-net-core.html
喜欢这个
private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)
{
// Old way (.NET Framework 4.8)
// string path = "Resources/test.xlsx";
// Process.Start(path);
// New way (.NET 6)
ProcessStartInfo psInfo = new ProcessStartInfo
{
FileName = "Resources/test.xlsx",
UseShellExecute = true
};
Process.Start(psInfo);
}