diff --git a/pkg/analyzer/lib/src/lint/analysis.dart b/pkg/analyzer/lib/src/lint/analysis.dart
index 18d98ab..b51a93a 100644
--- a/pkg/analyzer/lib/src/lint/analysis.dart
+++ b/pkg/analyzer/lib/src/lint/analysis.dart
@@ -134,15 +134,8 @@
     }
 
     if (projectAnalysisSession != null) {
-      var project = await DartProject.create(
-        projectAnalysisSession,
-        _filesAnalyzed.toList(),
-      );
-      for (var lint in Registry.ruleRegistry) {
-        if (lint is ProjectVisitor) {
-          (lint as ProjectVisitor).visit(project);
-        }
-      }
+      // ignore: deprecated_member_use_from_same_package
+      await _visitProject(projectAnalysisSession);
     }
 
     var result = <AnalysisErrorInfo>[];
@@ -168,6 +161,24 @@
     path = pathContext.normalize(path);
     return path;
   }
+
+  @Deprecated('DartProject is deprecated. This is slated for removal')
+  Future<void> _visitProject(AnalysisSession projectAnalysisSession) async {
+    Future<DartProject> createProject() async {
+      return await DartProject.create(
+        projectAnalysisSession,
+        _filesAnalyzed.toList(),
+      );
+    }
+
+    DartProject? project;
+    for (var lint in Registry.ruleRegistry) {
+      if (lint is ProjectVisitor) {
+        project ??= await createProject();
+        (lint as ProjectVisitor).visit(project);
+      }
+    }
+  }
 }
 
 /// Prints logging information comments to the [outSink] and error messages to
diff --git a/pkg/analyzer/lib/src/lint/linter.dart b/pkg/analyzer/lib/src/lint/linter.dart
index 2e07c8a..bbbb005 100644
--- a/pkg/analyzer/lib/src/lint/linter.dart
+++ b/pkg/analyzer/lib/src/lint/linter.dart
@@ -629,6 +629,7 @@
 
   /// Return a visitor to be passed to provide access to Dart project context
   /// and to perform project-level analyses.
+  @Deprecated('Use LinterContext instead')
   ProjectVisitor? getProjectVisitor() => null;
 
   /// Return a visitor to be passed to pubspecs to perform lint
diff --git a/pkg/analyzer/lib/src/lint/project.dart b/pkg/analyzer/lib/src/lint/project.dart
index 6feb9f4..17f95be 100644
--- a/pkg/analyzer/lib/src/lint/project.dart
+++ b/pkg/analyzer/lib/src/lint/project.dart
@@ -35,6 +35,7 @@
 /// standardized way, access global information (such as whether elements are
 /// in the "public API") and resources that have special meanings in the
 /// context of pub package layout conventions.
+@Deprecated('Use LinterContext instead')
 class DartProject {
   late final _ApiModel _apiModel;
   String? _name;
@@ -98,6 +99,7 @@
 }
 
 /// An object that can be used to visit Dart project structure.
+@Deprecated('Use LinterContext instead')
 abstract class ProjectVisitor<T> {
   T? visit(DartProject project) => null;
 }
diff --git a/pkg/analyzer/test/src/lint/project_test.dart b/pkg/analyzer/test/src/lint/project_test.dart
index 0c0c8dc..8b6d01a 100644
--- a/pkg/analyzer/test/src/lint/project_test.dart
+++ b/pkg/analyzer/test/src/lint/project_test.dart
@@ -18,6 +18,7 @@
       // TODO(brianwilkerson) These tests fail on the bots because the cwd is
       // not the same there as when we run tests locally.
       group('cwd', () async {
+        // ignore: deprecated_member_use_from_same_package
         var project = await DartProject.create(_AnalysisSessionMock(), []);
         test('name', () {
           expect(project.name, 'analyzer');
diff --git a/tools/VERSION b/tools/VERSION
index 21165ce..8f6d0e7 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 18
 PATCH 0
-PRERELEASE 117
+PRERELEASE 118
 PRERELEASE_PATCH 0
\ No newline at end of file
