정말 쉽습니다. 먼저 다음 어셈블리를 참조하십시오.
Microsoft.Build
Microsoft.Build.Engine
Microsoft.Build.Framework
Microsoft.Build.Utilities.v4.0
... 그리고 MSBuild 개체 모델에 대해 몇 가지 도구를 만들 수 있습니다. 아래의 스 니펫에서이 분석을 올바르게 수행하는 사용자 지정 MSBuild 작업이 있습니다.
private bool CheckReferences(string projectFullPath)
{
var project = new Project(projectFullPath);
var items = project.GetItems("Reference");
if (items == null)
return true;
foreach (var item in items)
{
if (item == null)
continue;
if (string.IsNullOrWhiteSpace(item.UnevaluatedInclude))
continue;
if (!item.HasMetadata("HintPath"))
continue;
string include = item.UnevaluatedInclude;
string hintPath = item.GetMetadata("HintPath").UnevaluatedValue;
if (!string.IsNullOrWhiteSpace(hintPath))
if (hintPath.Contains(@"C:\") || hintPath.Contains("C:/"))
LogWarning("Absolute path Reference in project {0}", projectFullPath);
}
return true;
}
Ms 빌드 커뮤니티 작업을 조사해야합니다. 나는 그들이 정말로 도움이되는 것을 알았다. – reggie