C#Project调用另一个项目失败,App.config

C#Project调用另一个项目失败,App.config,c#,app-config,C#,App Config,我有两个项目的解决方案。其中一个项目是一个控制台应用程序,您可以将信息插入其中,它将返回数据。第二个项目创建多个进程,通过传递参数调用第一个项目。到目前为止,一切正常 我希望能够改变第一个项目生成的格式,所以我将它的静态格式字符串改为从App.Config加载。当我独自运行第一个项目时,没有任何问题,而且一切仍然正常。在这一更改之后,每当第二个项目创建第一个项目的进程时,它都会失败,并出现ArgumentNullException,并且似乎没有加载格式字符串 下面是我调用控制台应用程序的第二个项

我有两个项目的解决方案。其中一个项目是一个控制台应用程序,您可以将信息插入其中,它将返回数据。第二个项目创建多个进程,通过传递参数调用第一个项目。到目前为止,一切正常

我希望能够改变第一个项目生成的格式,所以我将它的静态格式字符串改为从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>