private static void IncludeManifestInProjectAndVsix(DTE2 dte, Project project, string filePath)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            ProjectItem item = dte.AddFileToProject(project, filePath, itemType: "content");

            var solution = (IVsSolution)Package.GetGlobalService(typeof(SVsSolution));

            solution.GetProjectOfUniqueName(item.ContainingProject.UniqueName, out IVsHierarchy hierarchy);

            if (hierarchy is IVsBuildPropertyStorage buildPropertyStorage)
            {
                hierarchy.ParseCanonicalName(filePath, out var itemId);
                buildPropertyStorage.SetItemAttribute(itemId, "IncludeInVSIX", "true");
            }
        }
        private static void SetInputImagesAsResource(DTE2 dte, Project project, string folder)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            foreach (var file in Directory.EnumerateFiles(folder, "*.png"))
            {
                ProjectItem item = dte.Solution.FindProjectItem(file);

                if (item != null)
                {
                    item.SetItemType("Resource");
                }
                else
                {
                    dte.AddFileToProject(project, file, "Resource");
                }
            }
        }