C#Project调用另一个项目失败,App.config
我有两个项目的解决方案。其中一个项目是一个控制台应用程序,您可以将信息插入其中,它将返回数据。第二个项目创建多个进程,通过传递参数调用第一个项目。到目前为止,一切正常 我希望能够改变第一个项目生成的格式,所以我将它的静态格式字符串改为从App.Config加载。当我独自运行第一个项目时,没有任何问题,而且一切仍然正常。在这一更改之后,每当第二个项目创建第一个项目的进程时,它都会失败,并出现ArgumentNullException,并且似乎没有加载格式字符串 下面是我调用控制台应用程序的第二个项目的代码C#Project调用另一个项目失败,App.config,c#,app-config,C#,App Config,我有两个项目的解决方案。其中一个项目是一个控制台应用程序,您可以将信息插入其中,它将返回数据。第二个项目创建多个进程,通过传递参数调用第一个项目。到目前为止,一切正常 我希望能够改变第一个项目生成的格式,所以我将它的静态格式字符串改为从App.Config加载。当我独自运行第一个项目时,没有任何问题,而且一切仍然正常。在这一更改之后,每当第二个项目创建第一个项目的进程时,它都会失败,并出现ArgumentNullException,并且似乎没有加载格式字符串 下面是我调用控制台应用程序的第二个项
public static void Main(string[] args)
{
for (int i = 1; i < 10; i++)
{
Process EulerProblemN = CreateNewProcess(ExecutionPath, i.ToString());
EulerProblemN.Start();
string output = EulerProblemN.StandardOutput.ReadToEnd().Replace(Environment.NewLine, "");
Console.WriteLine(output);
EulerProblemN.WaitForExit();
}
Console.Read();
}
public static Process CreateNewProcess (string path, string argument)
{
Process eulersOutput = new Process();
eulersOutput.StartInfo.FileName = path;
eulersOutput.StartInfo.Arguments = argument;
eulersOutput.StartInfo.RedirectStandardOutput = true;
eulersOutput.StartInfo.UseShellExecute = false;
return eulersOutput;
}
App.Config的内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="AnswerFormat" value="The answer to Problem {0} is {1}, the program took: {2} milliseconds to complete."/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
. 我将该代码添加到两个项目中。不幸的是,这并没有解决错误,所以我将app.config的一个副本移到了这两个项目中。第一个项目继续运行,没有任何问题。我对它进行了测试,第二个项目成功地从它自己的应用程序配置加载,但当它在第一个项目的进程上调用.Start()时,仍然失败,并出现相同的ArgumentNullException错误
如果从项目2中作为进程调用,则项目1似乎没有从配置文件加载。项目2可以看到它自己的配置文件,它与项目1中的配置文件相同。这仍然是配置文件问题还是其他问题 加载的App.config
是您运行的项目的配置。另一个项目被有效地引用为类库,其App.config
文件将不会被加载。您还需要将设置放在第一个项目的配置文件中。加载的App.config
是您运行的项目的配置文件。另一个项目被有效地引用为类库,其App.config
文件将不会被加载。您还需要将设置放在第一个项目的配置文件中。另一个项目如何调用此控制台应用程序?我发布了调用控制台应用程序的项目代码,困惑了一秒钟。另一个项目调用此控制台应用程序的方式可能重复?我发布了调用控制台appGot ya的项目的代码,困惑了一秒钟。App.Config的可能重复项由两个项目共享,它已经可以访问it@Jesse卡特@wentimo这并没有改变答案。第二个应用程序无法在运行时像这样访问它。如果您想将这些项目中的任何一个作为启动项目加载,那么这个问题就更为重要了。要做到这一点,请看这个问题:我将app.config的一个副本移到了第二个项目中,但我仍然收到相同的错误哦,您正在更新另一个流程?它不了解现有流程,包括App.config
。为什么不通过项目引用来引用代码,而不是创建另一个流程?然后AppSettings将可用。App.Config由两个项目共享,它已经可以访问it@Jesse卡特@wentimo这并没有改变答案。第二个应用程序无法在运行时像这样访问它。如果您想将这些项目中的任何一个作为启动项目加载,那么这个问题就更为重要了。要做到这一点,请看这个问题:我将app.config的一个副本移到了第二个项目中,但我仍然收到相同的错误哦,您正在更新另一个流程?它不了解现有流程,包括App.config
。为什么不通过项目引用来引用代码,而不是创建另一个流程?然后AppSettings将可用。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="AnswerFormat" value="The answer to Problem {0} is {1}, the program took: {2} milliseconds to complete."/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>