Project.Save Method

Saves the project or project item.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

'Declaration
Sub Save ( _
    FileName As String _
)
void Save(
    string FileName
)
void Save(
    String^ FileName
)
abstract Save : 
        FileName:string -> unit 
function Save(
    FileName : String
)

Parameters

  • FileName
    Type: System.String
    Optional. The name in which to save the project or project item.

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.

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

.NET Framework Security

See Also

Reference

Project Interface

EnvDTE Namespace

Other Resources

How to: Compile and Run the Automation Object Model Code Examples