FxCopCmd参数编码问题

时间:2011-02-20 17:03:02

标签: .net fxcop fxcopcmd

问题:

我需要从我的代码中使用FxCopCmd.exe(FxCop 10.0),我的问题是,我相信FxCopCmd会得到我的参数(参见下面的p.StartInfo.Arguments),但有一些编码问题。 (我没有编码或本地化方面的经验。)

实施例

我构建的参数:

/ o:“C:\ Users \Ákos\ Documents \Tanulás\ diplomamunmunka \ softwareprojectqualityanalyser \implementáció\ Analizer \ Analizer \ bin \ Debug \ temp \ probaAnalisisReport.xml”/ fo / f:“C:\ Users \Ákos \ Documents \ Visual Studio 2010 \ Projects \ TeaBoiler \ TeaBoiler \ bin \ Release \ TeaBoiler.exe“

FxCopCmd错误消息:

无法打开输出文件:找不到路径'C:\ Users \μkos\ Documents \ Tanul s \ diplomamunmunka \ softwareprojectqualityanalyser \implementci˘\ Analizer \ Analizer \ bin \ Debug \ temp \ probaAnalisisReport的一部分。 XML” ..

注意:

如果我使用我使用编辑/粘贴构建的参数从cmd.exe使用FxCopCmd.exe,它可以正常工作。

开发环境:

Windows 7教授EN,默认输入语言:匈牙利语,.NET 4.0,C#4.0,VS2010 Ultimate

代码:

using (Process p = new Process())
        {
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.FileName = this.FxCop10Path.LocalPath;

            string fullpath = Assembly.GetExecutingAssembly().Location;
            string dir = Path.GetDirectoryName(fullpath);

            p.StartInfo.Arguments = "/o:\"" + dir + "\\temp\\" +
                (this.ProjectName.Equals("") == true || this.ProjectName == null
                ? "noNameProjectAnalysisReport.xml" : this.ProjectName + "AnalisisReport.xml\"")
                + " /fo";
            foreach (var item in this.Files)
            {
                p.StartInfo.Arguments += " /f:\"" + item.FilePath + "\"";
            }
            try
            {
                p.Start();
            }
            catch (Win32Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

设置参数后立即尝试断开。看看它产生了什么,然后复制并粘贴到cmd窗口,看看是怎么回事。此外,'temp'文件夹是否存在?如果没有,你确定FxCop会创建文件夹吗?