VSProject2.CopyProject 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将部分或全部 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 项目模板创建的项目。 如果项目是本地项目,则会引发异常。
如果目标文件夹或文件已存在,则将覆盖这些文件夹或文件。