Visual Studio에서 프로젝트에 T4 템플릿 파일 (tt 및 ttinclude 템플릿) 구조를 추가합니다. 프로그래밍 방식으로 프로젝트에 사용자 지정 도구가없는 템플릿 파일 추가
는 이러한 템플릿을 위해 우리는 우리의 사용자 지정 변환 및 처리를 사용하고 우리는 기본적으로 TextTemplatingFileGenerator로 설정되어 TT 파일의 사용자 정의 도구 설정을 원하지 않습니다.우리는 다음과 같은 코드를 사용하고 있음을 달성하기 위해 :
... // logic for the files creation
ProjectItem addedItem = this.project.ProjectItems.AddFromFile(fileFullPath);
addedItem.Properties.Item("CustomTool").Value = string.Empty;
문제는 파일이 프로젝트에 추가 될 때 코드 생성이 기본 사용자 지정 도구에 의한 우리는 제거 후에도된다는 것이다 tt 파일의 속성에서 변환으로 인한 오류는 여전히 오류 목록 (시각적 인 결함과 비슷한 것)에 있습니다.
파일을 저장하거나 다른 파일로 이동하거나 프로젝트를 빌드하자마자 사라집니다. 그러나 사용자가 이러한 오류를보고 제거하기 위해 추가 조치를 취하는 것을 원하지 않습니다.
우리는DTE2 dte2 = (DTE2)this.project.DTE;
dte2.ToolWindows.TaskList;
같은 DTE 및 DTE2 클래스를 사용하여 오류 모음에 액세스하거나
var provider = new ErrorListProvider(this.ServiceProvider);
var tasks = provider.Tasks;
로 ErrorListProvider 제공 업체에서 그들을 점점하려하지만, 작업 목록은 이러한 오류를 포함하지 않습니다 - 수도 그 이유는 그것이 변환 오류가 아니라 컴파일 오류 때문입니다.
더 이상한 것은 DTE.Events.TaskListEvents.TaskAdded 이벤트가 각각의 변환 오류에 대해 실행 중이지만 TaskList에서 찾을 수 없다는 것입니다. 또한 TaskAdded 이벤트에서 가져온 오류에 대해 Delete() 메서드를 호출하면 오류 목록에서 오류가 제거되지 않습니다.
프로그래밍 방식으로 파일을 탐색하거나 tamplate를 저장하려고했지만 수동으로 수행 할 때처럼 오류 목록을 새로 고치지 않았습니다.
오류 목록을 새로 고치거나 템플릿을 프로젝트에 추가 할 때 Visual Studio에서 사용자 지정 도구 설정을 추가하지 않도록 할 수 있습니까?
P. 우리는 클라이언트의 프로젝트 빌드를 강요하고 싶지 않습니다 (오류는 제거하지만 우리에게는 해당되지 않습니다).