Share via


Project.Save(String) Method

Definition

Saves the project or project item.

void Save(std::wstring const & FileName = "");
[System.Runtime.InteropServices.DispId(215)]
public void Save (string FileName = "");
[<System.Runtime.InteropServices.DispId(215)>]
abstract member Save : string -> unit
Public Sub Save (Optional FileName As String = "")

Parameters

FileName
String

Optional. The name in which to save the project or project item.

Attributes

Examples

This example works only in Visual Studio .NET 2003 and later versions. For more information, see How to: Programmatically Create Projects.

Sub SaveExample(ByVal dte As DTE)  

    ' NOTE: This example requires a reference to the   
    '       VSLangProj namespace.  

    ' Create a new solution.  
    Dim soln As Solution = dte.Solution  
    Dim solnName As String = "NewSolution.sln"  
    Dim tempPath As String = System.IO.Path.GetTempPath()  
    soln.Create(tempPath, solnName)  

    ' Create a new Visual Basic Console Application project.  
    Dim templatePath As String = dte.Solution.TemplatePath( _  
        PrjKind.prjKindVBProject)  
    templatePath &= "ConsoleApplication.vsz"  
    Dim projName As String = "NewProject"  
    soln.AddFromTemplate(templatePath, tempPath & projName, projName)  
    Dim proj As Project = soln.Item(1)  

    ' Add a new class to the project.  
    templatePath = dte.Solution.ProjectItemsTemplatePath( _  
        PrjKind.prjKindVBProject)  
    templatePath &= "\Class.vsz"  
    Dim projItemName As String = "NewClass.vb"  
    Dim projItem As ProjectItem = proj.ProjectItems.AddFromTemplate( _  
        templatePath, projItemName)  

    ' Add an Imports statement to the class file.  
    Dim sel As TextSelection = _  
        CType(projItem.Document.Selection, TextSelection)  
    sel.StartOfDocument()  
    sel.Insert("Imports System.Collections" & vbCrLf & vbCrLf, _  
        vsInsertFlags.vsInsertFlagsCollapseToStart)  

    ' Save the project item, project, and solution.  
    projItem.Save()  
    proj.Save(proj.FullName)  
    soln.SaveAs(tempPath & solnName)  

End Sub  
public void SaveExample(DTE dte)  
{  
    // NOTE: This example requires a reference to the   
    //       VSLangProj namespace.  

    // Create a new solution.  
    Solution soln = dte.Solution;  
    string solnName = "NewSolution.sln";  
    string tempPath = System.IO.Path.GetTempPath();  
    soln.Create(tempPath, solnName);  

    // Create a new C# Console Application project.  
    string templatePath =   
        dte.Solution.get_TemplatePath(PrjKind.prjKindCSharpProject);  
    templatePath += "CSharpConsole.vsz";  
    string projName = "NewProject";  
    soln.AddFromTemplate(templatePath, tempPath + projName,   
        projName, false);  
    Project proj = soln.Item(1);  

    // Add a new class to the project.  
    templatePath = dte.Solution.ProjectItemsTemplatePath(  
        PrjKind.prjKindCSharpProject);  
    templatePath += @"\CSharpAddClassWiz.vsz";  
    string projItemName = "NewClass.cs";  
    ProjectItem projItem = proj.ProjectItems.AddFromTemplate(  
        templatePath, projItemName);  

    // Add a using statement to the class file.  
    TextSelection sel = (TextSelection)projItem.Document.Selection;  
    sel.StartOfDocument(false);  
    sel.Insert("using System.Collections;" + Environment.NewLine,   
        (int)vsInsertFlags.vsInsertFlagsCollapseToStart);  

    // Save the project item, project, and solution.  
    projItem.Save("");  
    proj.Save(proj.FullName);  
    soln.SaveAs(tempPath + solnName);  
}  

Remarks

If FileName cannot be written, such as when the disk is full or when there are write permission problems, then Save produces an error. The file is saved with a new name based on FileName.

Important Save closes the document after it is saved. The object will need to be re-opened or re-initialized if it is used again.

Applies to