我有一个UWP应用程序,因为我需要在按钮单击上运行MSI文件。 我不认为UWP会支持“process.start(filename)”。 UWP有可能实现这一目标吗?
答案 0 :(得分:0)
UWP无法打开MSI。
但是uwp可以打开其他类型的文件。
您可以使用Launcher。
选择您想要运行的msi。
通过启动器文件运行msi。
结果总是失败。
export default class AutosList extends React.Component {
constructor () {
super();
this.state = {
data: []
}
}
componentWillMount () {
let data = axios.get('http://localhost:5000/autos')
//
data.then((res) => {
this.setState({
data: res.data
});
})
}
render () {
const { data } = this.state // => const data = this.state.data
return (
<div>
<header>
<h1>Autos page</h1>
</header>
<div>
{
this.state.data.map((item, i) => <Auto key={i} auto={item}/>)
}
</div>
<script dangerouslySetInnerHTML={ { __html: 'window.PROPS=' + JSON.stringify(data) } }/>
</div>
);
}
}
但是你会看到结果是假的,因为private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
//pick msi file
FileOpenPicker pick = new FileOpenPicker();
pick.FileTypeFilter.Add(".msi");
StorageFile file = await pick.PickSingleFileAsync();
//run
bool result = await Launcher.LaunchFileAsync(file);
if (result)
{
//success
}
}
您可以打开该文件夹并使用它来单击msi文件。代码为:
Many file types that contain executable code, for example .exe, .msi, and .js files, are blocked from launching
请参阅:Windows Store App running .msi installer
https://msdn.microsoft.com/en-us/library/windows/apps/hh701471.aspx?f=255&MSPPError=-2147217396