共用方式為


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

    必要項。 新專案的目的資料夾。 如果資料夾不存在則會建立新的資料夾。 這個字串的形式為 http://ServerName/CopyName/。

  • bstrDestUNCPath
    類型:String

    必要項。 如果要複製的專案使用檔案共用存取,則這是檔案共用的 UNC 路徑。 如果專案使用 FrontPage Server Extensions 存取,請使用空字串。

  • copyProjectOption
    類型:prjCopyProjectOption

    必要項。 prjCopyProjectOption 值,用以判定要複製哪些專案檔案,例如複製所有檔案、所有專案檔案,或只複製執行應用程式所需的檔案。

  • bstrUsername
    類型:String

    必要項。 使用者的網路登入 ID。

  • bstrPassword
    類型:String

    必要項。 使用者的密碼。

備註

比起簡單 xcopy 專案檔,這個用來複製 Web 專案的方法提供較多功能,但不如部署的功能多。 CopyProject 方法會適當變更 Web 伺服器上的 IIS 和專案資料夾,使得專案的開發能夠照常繼續。 部署提供較多設定 Web 的功能,包括建立資料庫和訊息佇列。

此方法僅限於複製 Web 專案。 Web 專案指的是從 ASP.NET Web 應用程式、XML Web Service 和 [新增專案] 對話方塊中的 [空的 Web 專案] 範本建立的專案。 如果專案是本機專案,則會引發例外狀況。

如果目的資料夾或檔案已存在,則會遭到覆寫。

範例

如果方案中的第一個專案是 Visual Basic 或 Visual C# 專案,此範例就會複製該專案。 若要將此範例當做增益集來執行,請參閱 如何:編譯和執行 Automation 物件模型程式碼範例

[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."); 
    }
}

.NET Framework 安全性

請參閱

參考

VSProject2 介面

VSLangProj80 命名空間