//打开工程集文件
XmlDocument doc = new XmlDocument();
doc.Load(strFilePath);
XmlNodeList xnl = doc.ChildNodes[0].ChildNodes;
if (doc.ChildNodes[0].Name.ToLower() != "project")
xnl = doc.ChildNodes[1].ChildNodes;
string assemblyname = string.Empty;//程序集名
string outputpath = string.Empty;//输出路径
//遍历工程集文件
foreach (XmlNode xn in xnl)
{
if (xn.ChildNodes.Count > 0 && xn.ChildNodes[0].Name.ToLower() == "configuration")
{
foreach (XmlNode cxn in xn.ChildNodes)
{
if (cxn.Name.ToLower() == "assemblyname")
{
assemblyname = cxn.InnerText;
}
}
}
if (xn.ChildNodes.Count > 0 && xn.ChildNodes[0].Name.ToLower() == "debugsymbols")
{
foreach (XmlNode cxn in xn.ChildNodes)
{
if (cxn.Name.ToLower() == "outputpath")
{
outputpath = cxn.InnerText.EndsWith("\\") ? cxn.InnerText.Substring(0, cxn.InnerText.Length - 1) : cxn.InnerText;
if (string.IsNullOrEmpty(outputpath) || !outputpath.ToUpper().Contains("EAPPRORESOURCE"))
{
MessageBox.Show("工程:" + tn.Text + " 的输出路径设置不对," + outputpath + "应设置到对应的EAPPRORESOURCE文件夹下的对应业务文件存放的文件夹中。");
return;
}
outputpath = outputpath.Substring(outputpath.ToUpper().IndexOf("EAPPRORESOURCE") , outputpath.Length - outputpath.ToUpper().IndexOf("EAPPRORESOURCE") );
outputpath = outputpath.Substring(outputpath.IndexOf("\\")+1 , outputpath.Length - outputpath.IndexOf("\\") -1);
}
}
}
}
sbFiles.Append("|" + outputpath +"\\" + assemblyname+".dll");
}
你的这个方法也很好,只是不想使用这种解析XML的方法。
我想看看C#自带的类是否能够完成这个工作。
@luoshupeng: System.Xml.XmlDocument本来就是C#自带的类库
@五行缺木: 这个是,你看看我用的那个Project类,这个类可以得出一部分内容的。我的意思是类似这样的类