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"); } } }