VSProject2.CopyProject 方法

将 Web 项目的部分或全部内容复制到新位置。

命名空间:  VSLangProj80
程序集:  VSLangProj80(在 VSLangProj80.dll 中)

语法

声明
Sub CopyProject ( _
    bstrDestFolder As String, _
    bstrDestUNCPath As String, _
    copyProjectOption As prjCopyProjectOption, _
    bstrUsername As String, _
    bstrPassword As String _
)
void CopyProject(
    string bstrDestFolder,
    string bstrDestUNCPath,
    prjCopyProjectOption copyProjectOption,
    string bstrUsername,
    string bstrPassword
)
void CopyProject(
    [InAttribute] String^ bstrDestFolder, 
    [InAttribute] String^ bstrDestUNCPath, 
    [InAttribute] prjCopyProjectOption copyProjectOption, 
    [InAttribute] String^ bstrUsername, 
    [InAttribute] String^ bstrPassword
)
abstract CopyProject : 
        bstrDestFolder:string * 
        bstrDestUNCPath:string * 
        copyProjectOption:prjCopyProjectOption * 
        bstrUsername:string * 
        bstrPassword:string -> unit
function CopyProject(
    bstrDestFolder : String, 
    bstrDestUNCPath : String, 
    copyProjectOption : prjCopyProjectOption, 
    bstrUsername : String, 
    bstrPassword : String
)

参数

  • bstrDestFolder
    类型:String

    必选。 新项目的目标文件夹。 如果此文件夹不存在,将创建它。 此字符串采用 https://ServerName/CopyName/ 格式。

  • bstrDestUNCPath
    类型:String

    必选。 如果要复制的项目使用的是文件共享访问,则为文件共享的 UNC 路径。 如果项目使用的是 FrontPage 服务器扩展访问,则使用空字符串。

  • copyProjectOption
    类型:prjCopyProjectOption

    必选。 一个用来确定复制哪些项目文件(是复制所有文件、所有项目文件还是仅复制运行应用程序所需的文件)的 prjCopyProjectOption 值。

  • bstrUsername
    类型:String

    必选。 用户的网络登录 ID。

  • bstrPassword
    类型:String

    必选。 用户的密码。

备注

此方法用于复制 Web 项目,它提供的功能比项目文件的简单 xcopy 提供的多,但比部署提供的少。 CopyProject 方法对 Web 服务器上的 IIS 和项目文件夹进行适当更改,以便项目的开发可以照常继续进行。 部署则提供更多设置 Web 的功能,包括创建数据库和消息队列。

此方法只复制 Web 项目。 Web 项目是从**“新建项目”**对话框中 ASP.NET Web 应用程序、XML Web services 和“空 Web 项目”模板创建的项目。 如果该项目为本地项目,则将引发异常。

如果目标文件夹或文件已经存在,则将覆盖它们。

示例

此示例将复制解决方案中的第一个属于 Visual Basic 或 Visual C# 项目的项目。 若要将此示例作为外接程序运行,请参见如何:编译和运行自动化对象模型代码示例

[Visual Basic]

' Add-in code.
' Copies the first project in the solution.
' This procedure could fail if the first project is not a Visual Basic,
' or Visual C# project, or if the project is not a Web
' application.
Imports VSLangProj
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    CopyWeb(applicationObject)
End Sub

Public Sub CopyWeb(ByVal dte As DTE2)
    Try
        Dim proj As VSProject2 = _
        CType(applicationObject.Solution.Projects.Item(1).Object, _
    VSProject2)
        proj.CopyProject("https://Localhost/Copy_of_Project", "", _
        prjCopyProjectOption.prjRunFiles, "", "")
    Catch ex As System.Exception
        MsgBox("Cannot copy Web project.")
    End Try
End Sub

[C#]

using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application, ext_ConnectMode
 connectMode, object addInInst, ref Array custom)
{
    applicationObject = (DTE2)application;
    addInInstance = (AddIn)addInInst;
    CopyWeb((DTE2)applicationObject);
}

public void CopyWeb( DTE2 dte ) { 
    try { 
        VSProject2 proj = ( ( VSProject2 )
(applicationObject.Solution.Projects.Item( 1 ).Object ) ); 
        proj.CopyProject( "https://Localhost/Copy_of_Project", "",
 prjCopyProjectOption.prjRunFiles, "", "" ); 
    }
    catch ( System.Exception ex ) {
        MessageBox.Show(ex.ToString());
        MessageBox.Show( "Cannot copy Web project."); 
    }
}

.NET Framework 安全性

请参阅

参考

VSProject2 接口

VSLangProj80 命名空间