public void InstallLatestPackages(ThreadedWaitDialogProgressScope scope, Project project) { foreach (string packageId in packageIdList) { scope.Update( "Checking Packages", $"Checking if package {packageId} is installed", $"Checking if package {packageId} is installed", true ); if (GlobalServices.InstallerServices.IsPackageInstalled(project, packageId)) { continue; } try { scope.Update( "Installing Package", $"Installing latest package {packageId}", $"Installing latest package {packageId}", true ); GlobalServices.PackageInstaller2.InstallLatestPackage(null, project, packageId, true, false); } catch (Exception e) { Debug.Print(e.Message); } } }
public void AddRequiredReferences(ThreadedWaitDialogProgressScope scope, Project project) { VSProject vsproject = project.Object as VSProject; string[] referenceNames = GetReferences(vsproject).Select(r => r.Name).ToArray(); foreach (KeyValuePair <string, string> kvp in ReferenceDictionary) { scope.Update( "Checking Reference", $"Checking if reference {kvp.Key} has resolved", $"Checking if reference {kvp.Key} has resolved", true ); IEnumerable <string> enumerable = referenceNames; if (!enumerable.Contains(kvp.Key)) { try { scope.Update( "Adding Reference", $"Adding reference {kvp.Key} with path {kvp.Value}", $"Adding reference {kvp.Key} with path {kvp.Value}", true ); Reference newreference = vsproject.References.Add(kvp.Value); } catch (Exception e) { Debug.Print(e.Message); } } } }
private static void GenerateXamlPropertyRuleCore(ThreadedWaitDialogProgressScope scope, ProjectItem folder, string content, string fileName) { scope.Update("Generating XamlPropertyRule", $"Creating {fileName}", $"Creating {fileName}", true); string directory = folder.FileNames[0]; string xamlPropertyRulePath = Path.Combine(directory, fileName); string codeBehindFilePath = Path.Combine(directory, $"{fileName}.cs"); string rootNamespace = folder.ContainingProject.Properties.Item("DefaultNamespace").Value.ToString(); string codeBehindContent = GenerateCodeBehindContent(Path.GetFileNameWithoutExtension(fileName), rootNamespace); File.WriteAllText(xamlPropertyRulePath, content); scope.Update("Generating XamlPropertyRule CodeBehind", $"Creating {fileName}.cs", $"Creating {fileName}.cs", true); File.WriteAllText(codeBehindFilePath, codeBehindContent); SetXamlPropertyRuleBuildProperties(folder.ProjectItems.AddFromFile(xamlPropertyRulePath)); }
private static void GenerateXamlPropertyRuleProjectItemsSchema(ThreadedWaitDialogProgressScope scope, ProjectItem folder, string content, string fileName) { scope.Update("Generating XamlPropertyRuleProjectItemsSchema", $"Creating {fileName}", $"Creating {fileName}", true); string directory = folder.FileNames[0]; string xamlPropertyRulePath = Path.Combine(directory, fileName); File.WriteAllText(xamlPropertyRulePath, content); SetXamlPropertyRuleProjectItemsSchemaBuildProperties(folder.ProjectItems.AddFromFile(xamlPropertyRulePath)); }
public void EnsureReferences(ThreadedWaitDialogProgressScope scope, ReferencesOption option, Project project) { IEnumerable <MetadataReference> optionReferences = GetList(option); ImmutableList <MetadataReference> currentReferences = project.MetadataReferences.ToImmutableList(); foreach (MetadataReference reference in optionReferences) { scope.Update( "Checking References", $"Checking if reference {reference.Display} has resolved", $"Checking if reference {reference.Display} has resolved", true ); if (currentReferences.Contains(reference)) { continue; } scope.Update( "Adding References", $"Adding reference {reference.Display}", $"Adding reference {reference.Display}" ); project = project.AddMetadataReference(reference); try { _workspace.TryApplyChanges(project.Solution); } catch (Exception e) { Debug.Print(e.Message); } } }