Share via


ProjectItem.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 with 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.

Examples

This example works only in Visual Studio .NET 2003. For more information, see Migrating Code that Creates Projects by Using Templates.

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

ProjectItem Interface

EnvDTE Namespace

Other Resources

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