private void AddNewDtoFileToProject(string fileName, string templateCode, List <string> nugetPackages = null) { nugetPackages = nugetPackages ?? new List <string>(); var project = VSIXUtils.GetSelectedProject() ?? VSIXUtils.GetSelectObject <ProjectItem>().ContainingProject; // This is a temporary work around for ServiceStack *.Core packages whilst they are separate/in beta. // This is to be removed/updated once the Text, Client and/or Interfaces NuGet packages support NetCore by default. nugetPackages = ApplyNetCoreNuGetPackages(nugetPackages, project); var path = VSIXUtils.GetSelectedProjectPath() ?? VSIXUtils.GetSelectedFolderPath(); string fullPath = Path.Combine(path, fileName); using (var streamWriter = File.CreateText(fullPath)) { streamWriter.Write(templateCode); streamWriter.Flush(); } // HACK avoid VS2015 Update 2 seems to detect file in use semi regularly. Thread.Sleep(20); var newDtoFile = project.ProjectItems.AddFromFile(fullPath); newDtoFile.Open(EnvDTE.Constants.vsViewKindCode); newDtoFile.Save(); foreach (var nugetPackage in nugetPackages) { AddNuGetDependencyIfMissing(project, nugetPackage); } project.Save(); }
private void AddNewDtoFileToProject(string fileName, string templateCode, List <string> nugetPackages = null) { nugetPackages = nugetPackages ?? new List <string>(); var project = VSIXUtils.GetSelectedProject() ?? VSIXUtils.GetSelectObject <ProjectItem>().ContainingProject; var path = VSIXUtils.GetSelectedProjectPath() ?? VSIXUtils.GetSelectedFolderPath(); string fullPath = Path.Combine(path, fileName); using (var streamWriter = File.CreateText(fullPath)) { streamWriter.Write(templateCode); streamWriter.Flush(); } // HACK avoid VS2015 Update 2 seems to detect file in use semi regularly. Thread.Sleep(20); var newDtoFile = project.ProjectItems.AddFromFile(fullPath); newDtoFile.Open(EnvDTE.Constants.vsViewKindCode); newDtoFile.Save(); foreach (var nugetPackage in nugetPackages) { AddNuGetDependencyIfMissing(project, nugetPackage); } project.Save(); }
private void TypeScriptAddReferenceCallback(object sender, EventArgs e) { var projectPath = VSIXUtils.GetSelectedProjectPath(); var folderPath = VSIXUtils.GetSelectedFolderPath(); string finalPath = projectPath ?? folderPath; var typesHandler = NativeTypeHandlers.TypeScriptNativeTypesHandler; AddServiceStackReference(finalPath, typesHandler); }
private void AddNewDtoFileToProject(string fileName, string templateCode, List <string> nugetPackages = null) { nugetPackages = nugetPackages ?? new List <string>(); var project = VSIXUtils.GetSelectedProject() ?? VSIXUtils.GetSelectObject <ProjectItem>().ContainingProject; var path = VSIXUtils.GetSelectedProjectPath() ?? VSIXUtils.GetSelectedFolderPath(); string fullPath = Path.Combine(path, fileName); File.WriteAllText(fullPath, templateCode); try { // HACK avoid VS2015 Update 2 seems to detect file in use semi regularly. Thread.Sleep(50); var newDtoFile = project.ProjectItems.AddFromFile(fullPath); newDtoFile.Open(EnvDteConstants.vsViewKindCode); newDtoFile.Save(); } catch (Exception) {} try { foreach (var nugetPackage in nugetPackages) { AddNuGetDependencyIfMissing(project, nugetPackage); } } catch (Exception) {} try { project.Save(); } catch (Exception) {} }