本文整理汇总了C#中IProject.AsXml方法的典型用法代码示例。如果您正苦于以下问题:C# IProject.AsXml方法的具体用法?C# IProject.AsXml怎么用?C# IProject.AsXml使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProject
的用法示例。
在下文中一共展示了IProject.AsXml方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddReference
public AddReferenceResponse AddReference(IProject project, string reference)
{
var response = new AddReferenceResponse();
var projectToReference = _solution.Projects.First(p => p.FileName.Contains(reference));
var projectXml = project.AsXml();
var referenceNodes = GetReferenceNodes(projectXml, "ProjectReference");
var relativeProjectPath = project.FileName.GetRelativePath(projectToReference.FileName);
var projectReferenceNode = CreateProjectReferenceNode(relativeProjectPath, projectToReference);
var projectAlreadyAdded = referenceNodes.Any(n => n.Attribute("Include").Value.Equals(relativeProjectPath));
if (IsCircularReference(project, projectToReference))
{
response.Message = "Reference will create circular dependency";
return response;
}
if (!projectAlreadyAdded)
{
var projectContainsProjectReferences = referenceNodes.Count > 0;
if (projectContainsProjectReferences)
{
referenceNodes.First().Parent.Add(projectReferenceNode);
}
else
{
var projectItemGroup = new XElement(MsBuildNameSpace + "ItemGroup");
projectItemGroup.Add(projectReferenceNode);
projectXml.Element(MsBuildNameSpace + "Project").Add(projectItemGroup);
}
project.AddReference(new ProjectReference(_solution, projectToReference.Title));
project.Save(projectXml);
response.Message = string.Format("Reference to {0} added successfully", projectToReference.Title);
}
else
{
response.Message = "Reference already added";
}
return response;
}
示例2: AddReference
public AddReferenceResponse AddReference(IProject project, string reference)
{
var response = new AddReferenceResponse();
var projectXml = project.AsXml();
var referenceNodes = GetReferenceNodes(projectXml, "Reference");
var referenceAlreadyAdded = referenceNodes.Any(n => n.Attribute("Include").Value.Equals(reference));
if (!referenceAlreadyAdded)
{
var fileReferenceNode = CreateReferenceNode(reference);
if (referenceNodes.Count > 0)
{
referenceNodes.First().Parent.Add(fileReferenceNode);
}
else
{
var projectItemGroup = new XElement(MsBuildNameSpace + "ItemGroup");
projectItemGroup.Add(fileReferenceNode);
projectXml.Element(MsBuildNameSpace + "Project").Add(projectItemGroup);
}
var assemblyPath = project.FindAssembly (reference);
if (assemblyPath != null)
{
project.AddReference (assemblyPath);
project.Save (projectXml);
response.Message = string.Format ("Reference to {0} added successfully", reference);
}
else
{
response.Message = "Did not find " + reference;
}
}
else
{
response.Message = "Reference already added";
}
return response;
}
示例3: AddReference
public AddReferenceResponse AddReference(IProject project, string reference)
{
var response = new AddReferenceResponse();
var projectXml = project.AsXml();
var referenceNodes = GetReferenceNodes(projectXml, "Reference");
var relativeReferencePath = project.FileName.GetRelativePath(reference);
var referenceName = reference.Substring(reference.LastIndexOf("\\") + 1).Replace(".dll", "");
var referenceAlreadyAdded = referenceNodes.Any(n => n.Attribute("Include").Value.Equals(referenceName));
var fileReferenceNode = CreateReferenceNode(relativeReferencePath, referenceName);
if (!referenceAlreadyAdded)
{
if (referenceNodes.Count > 0)
{
referenceNodes.First().Parent.Add(fileReferenceNode);
}
else
{
var projectItemGroup = new XElement(MsBuildNameSpace + "ItemGroup");
projectItemGroup.Add(fileReferenceNode);
projectXml.Element(MsBuildNameSpace + "Project").Add(projectItemGroup);
}
project.AddReference(reference.LowerCaseDriveLetter());
project.Save(projectXml);
response.Message = string.Format("Reference to {0} added successfully", referenceName);
}
else
{
response.Message = "Reference already added";
}
return response;
}