VSProject2.CopyProject 方法

定义

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

public:
 void CopyProject(System::String ^ bstrDestFolder, System::String ^ bstrDestUNCPath, VSLangProj::prjCopyProjectOption copyProjectOption, System::String ^ bstrUsername, System::String ^ bstrPassword);
public:
 void CopyProject(Platform::String ^ bstrDestFolder, Platform::String ^ bstrDestUNCPath, VSLangProj::prjCopyProjectOption copyProjectOption, Platform::String ^ bstrUsername, Platform::String ^ bstrPassword);
void CopyProject(std::wstring const & bstrDestFolder, std::wstring const & bstrDestUNCPath, VSLangProj::prjCopyProjectOption copyProjectOption, std::wstring const & bstrUsername, std::wstring const & bstrPassword);
[System.Runtime.InteropServices.DispId(13)]
public void CopyProject (string bstrDestFolder, string bstrDestUNCPath, VSLangProj.prjCopyProjectOption copyProjectOption, string bstrUsername, string bstrPassword);
[<System.Runtime.InteropServices.DispId(13)>]
abstract member CopyProject : string * string * VSLangProj.prjCopyProjectOption * string * string -> unit
Public Sub CopyProject (bstrDestFolder As String, bstrDestUNCPath As String, copyProjectOption As prjCopyProjectOption, bstrUsername As String, bstrPassword As String)

参数

bstrDestFolder
String

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

bstrDestUNCPath
String

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

copyProjectOption
prjCopyProjectOption

必需。 一个 prjCopyProjectOption 值,该值确定要复制的项目文件(所有文件、所有项目文件或仅运行应用程序所需的文件)。

bstrUsername
String

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

bstrPassword
String

必需。 用户的密码。

实现

属性

示例

此示例将复制解决方案中的第一个项目,前提是它是 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("http://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( "http://Localhost/Copy_of_Project", "",  
 prjCopyProjectOption.prjRunFiles, "", "" );   
    }  
    catch ( System.Exception ex ) {  
        MessageBox.Show(ex.ToString());  
        MessageBox.Show( "Cannot copy Web project.");   
    }  
}  

注解

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

此方法仅复制 Web 项目。 Web 项目是通过 ASP.NET web 应用程序、XML Web services 和 " 新建项目 " 对话框中的空 web 项目模板创建的项目。 如果项目是本地项目,则会引发异常。

如果目标文件夹或文件已存在,则将覆盖这些文件夹或文件。

适用于