InvalidOperationException: UseShellExecute must be false when redirecting I/O.
时间: 2024-02-11 12:04:18 浏览: 136
这条错误信息表明在使用Process类执行外部程序时,使用了重定向输入输出的方式,并且同时将UseShellExecute属性设置为了true。然而,这两个选项是互斥的,不能同时使用。如果想要重定向输入输出,则必须将UseShellExecute属性设置为false。
解决这个错误的方法是,在创建Process对象之后,显式地将UseShellExecute属性设置为false,然后再进行输入输出的重定向操作。例如:
```
Process process = new Process();
process.StartInfo.FileName = "myprogram.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
```
这样就可以正确地重定向输入输出,避免出现这个错误。
相关问题
System.InvalidOperationException:“The 'components' collection should be ordinal (like an array) with items that have numeric names to indicate the index in the collection. 'components' didn't have a numeric name so couldn't be parsed. Check https://autofac.readthedocs.io/en/latest/configuration/xml.html for configuration examples.”
这是一个异常,提示Autofac配置文件中的"components"节点应该是按顺序排列且具有数字名称,以表示它们在集合中的索引位置。如果节点没有数字名称,则无法解析。您可以查看https://autofac.readthedocs.io/en/latest/configuration/xml.html获取配置文件示例。
autofac System.InvalidOperationException:“The 'components' collection should be ordinal (like an array) with items that have numeric names to indicate the index in the collection. 'components' didn't have a numeric name so couldn't be parsed. Check https://autofac.readthedocs.io/en/latest/configuration/xml.html for configuration examples.” System.InvalidOperationException:“'components'集合应该是有序的(像数组一样),其项具有数字名称以指示集合中的索引。'components'没有数字名称,因此无法进行分析。请检查
出现这个错误是因为在 `components` 元素中的子元素必须有一个数值的名称,以便在解析 XML 时进行正确的排序。你可以使用以下代码来修改 XML 配置文件,为 `components` 元素中的每个子元素添加一个数值名称:
```xml
<?xml version="1.0" encoding="utf-8" ?>
<autofac>
<components>
<component type="Learun.DataBase.SqlServer.Database, Learun.DataBase" service="Learun.DataBase.IDatabase, Learun.DataBase" instance-scope="single-instance" name="SqlServer" />
</components>
</autofac>
```
在这个例子中,`component` 元素的名称可以任意取,但是必须在 `components` 元素中有一个数值的名称,例如:
```xml
<components>
<component1 type="Learun.DataBase.SqlServer.Database, Learun.DataBase" service="Learun.DataBase.IDatabase, Learun.DataBase" instance-scope="single-instance" name="SqlServer" />
<component2 type="Another.Database, Another.Assembly" service="Another.IDatabase, Another.Assembly" instance-scope="single-instance" name="AnotherDb" />
</components>
```
这样,Autofac 就能够正确地解析 `components` 元素中的子元素了,避免了出现异常。
阅读全文