C# 调试自己的方法时没有源可用错误(Nlog Logger.cs)

C# 调试自己的方法时没有源可用错误(Nlog Logger.cs),c#,visual-studio-2010,unit-testing,nlog,C#,Visual Studio 2010,Unit Testing,Nlog,第一件事: 我在2.0.0版中将VisualStudio2010与记录器NLog一起使用 当我在使用单元测试项目时尝试调试我的一个方法时,会出现一个特定错误: `Locating source for 'c:\NLogBuild\src\NLog\Logger.cs'. (No checksum.) The file 'c:\NLogBuild\src\NLog\Logger.cs' does not exist. Looking in script documents for 'c:\NLog

第一件事:

我在2.0.0版中将VisualStudio2010与记录器NLog一起使用

当我在使用单元测试项目时尝试调试我的一个方法时,会出现一个特定错误:

`Locating source for 'c:\NLogBuild\src\NLog\Logger.cs'. (No checksum.)
The file 'c:\NLogBuild\src\NLog\Logger.cs' does not exist.
Looking in script documents for 'c:\NLogBuild\src\NLog\Logger.cs'...
Looking in the projects for 'c:\NLogBuild\src\NLog\Logger.cs'.
The file was not found in a project.
Looking in directory 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\'...
Looking in directory 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\'...
Looking in directory 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\atl\'...
Looking in directory 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\'...
The debug source files settings for the active solution indicate that the debugger will not ask the user to find the file: c:\NLogBuild\src\NLog\Logger.cs.
The debugger could not locate the source file 'c:\NLogBuild\src\NLog\Logger.cs'`
我试图在stackoverflow上找到这个错误,但找到的解决方案并没有解决这个问题。我试过几种方法:

重新安装记录器NLog 更新对Nlog.dll和NLogExtended.dll的引用 排除引用并卸载nlog后重新启动我的操作系统 从项目中排除该文件,再次包括该文件,并像在这个问题中所说的那样重建项目 并非我的所有方法都会出现此错误。我可以调试到某个方法中,但是如果我尝试到其他方法中,我会得到这个错误

编辑:当我尝试进入CheckoutputPath方法时,会发生追加错误。 在这种情况下,我必须使用记录器,并且我在其他一些方法中使用记录器,在这些方法中我没有得到错误

[TestMethod()]
   public void RunMethodCheckTest()
   {
       string[] cmdArgs = { };
       WebserviceReader.RunMethodCheck(cmdArgs);
   }

public static void RunMethodCheck(string [] cmdArgs)
    {
        string xmlPath = null;
        string outputPath = null;
        bool noRun = false;
        bool append = false;

        if (cmdArgs != null)
        {
            for (int i = 0; i < cmdArgs.Length; i++)
            {
                cmdArgs[i] = cmdArgs[i].ToLowerInvariant();

                if (cmdArgs[i].Equals("/?"))
                {
                    ShowHelpText();
                    return;
                }
                if (cmdArgs[i].Substring(0, 7).Equals("/output:"))
                {
                    outputPath = cmdArgs[i].Substring(cmdArgs[i].Length - 4).Equals(".xml") ? cmdArgs[i].Substring(8) : cmdArgs[i].Substring(8) + ".xml";
                }
                else if (cmdArgs[i].Substring(0, 7).Equals("/input:"))
                {
                    outputPath = cmdArgs[i].Substring(cmdArgs[i].Length - 4).Equals(".xml") ? cmdArgs[i].Substring(8) : cmdArgs[i].Substring(8) + ".xml";
                }
                else if (cmdArgs[i].Substring(0, 10).Equals("/changeout"))
                {
                    Properties.Settings.Default.OutputDefaultFileName = cmdArgs[i].Substring(cmdArgs[i].Length - 4).Equals(".xml") ? cmdArgs[i].Substring(11) : cmdArgs[i].Substring(11) + ".xml";
                    noRun = true;
                }
                else if (cmdArgs[i].Substring(0, 9).Equals("/changein"))
                {
                    Properties.Settings.Default.InputDefaultFileName = cmdArgs[i].Substring(cmdArgs[i].Length - 4).Equals(".xml") ? cmdArgs[i].Substring(10) : cmdArgs[i].Substring(10) + ".xml";
                    noRun = true;
                }
                else if (cmdArgs[i].Substring(0, 7).Equals("/append")) { append = true; }

            }
        }

        if (noRun) { return; }

        if (String.IsNullOrEmpty(xmlPath))
        {
            xmlPath = MethodCheck.WebserviceReader.GetApplicationFolderName() + "\\" + MethodCheck.Properties.Settings.Default.InputDefaultFileName;
        }
        if (String.IsNullOrEmpty(outputPath))
        {
            outputPath = MethodCheck.WebserviceReader.GetApplicationFolderName() + @"\" + MethodCheck.Properties.Settings.Default.OutputDefaultFileName;
        }

        MethodCheckType methodCheck = new MethodCheckType(xmlPath);

        methodCheck.Check(outputPath,append);
    }

public void Check(string outputPath, bool append)
{
    System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
    double time;
    StringBuilder output = new StringBuilder();
    String valueExecute;
    String newLine = Environment.NewLine;

    for (int i = 0; i < this.WebService.Length; i++)
    {
        try
        {
            watch.Reset();

            watch.Start();
            valueExecute = this.WebService[i].Execute();
            watch.Stop();

            time = watch.ElapsedMilliseconds;

            output.Append("Executed:\n" + this.WebService[i].URL + newLine + "Time: " + time + " Milliseconds");

            Console.WriteLine(output.ToString());

            output.Append(newLine + "Expected:\t" + this.WebService[i].ReturnValue + newLine + "Got:");
            output.Append(newLine + valueExecute + newLine + newLine);
        }
        catch (Exception ex)
        {
            output.Append("Failed Webservice:\n" + this.WebService[i].URL + newLine);

            Console.WriteLine(output.ToString());

            logger.LogException(LogLevel.Error, "Failed Webservice:\t" + this.WebService[i].URL, ex);
            continue;
        }
    }

    MethodCheck.WebserviceReader.WriteToFile(output.ToString(),outputPath,append);
}

如果我没有在方法Checkstring中使用记录器,那么错误也会发生。

问题的原因不是NLog调用,我不知道为什么它仍然发生

我已经找到了解决办法,但这并不令人满意:
在所有行中设置断点,我必须进行调试。

这不是错误,您可以跳过NLog调用。我如何跳过NLog调用?