Visual Studio复制项目

时间:2009-05-19 18:10:13

标签: visual-studio visual-studio-2008

我想复制一下我的项目。我宁愿不通过添加文件和引用等从头开始这样做。请注意,我不是指复制部署。只是简单的复制。

VS中是否有工具可以执行此操作?我正在使用VS 2008

12 个答案:

答案 0 :(得分:128)

如果您想要副本,最快的方法是保存项目。然后在文件系统上复制整个内容。返回Visual Studio并打开副本。从那里,我很可能会建议重新命名项目/解决方案,以便您没有两个相同的名称,但这是制作副本的最快方法。

答案 1 :(得分:67)

只需create a template;

从您的项目中选择:项目 - 导出模板

该向导将允许您定义

  • 模板名称
  • 模板说明
  • 图标
  • 预览图片

然后它将您的项目压缩到“我的导出模板”目录中。 您还可以选择在创建新项目时使模板可用。

当您使用模板创建新项目时,命名空间对于每个文件中的“your_new_project_name”都是正确的,所有引用都是正确的,所有内容都是完美的:)

您可以将.zip文件发送给任何人,他们必须将.zip文件复制(不解压缩)到Templates \ ProjectTemplates目录中,以便他们使用。

我制作了一个带有文件夹,布局页面,视图模型等的ASP.NET MVC模板,这些模板按我喜欢的方式排列。

注意:
如果项目中有一个空文件夹,它将不会被添加到模板中,所以我只添加了一个适合每个文件夹的空类,以及一个图像文件夹的示例图片。

答案 2 :(得分:6)

我想如果这是你经常做的事情,有一个小的(非自由的)实用工具承诺为你做这件事:我还没有用过它,所以不确定它有多好:

http://www.kinook.com/CopyWiz/

CodePlex上还有这个项目:

http://clone.codeplex.com/

我可能会尝试使用codeplex项目,如果它不起作用,我将手动重命名所有内容并编辑sln文件。

答案 3 :(得分:3)

我遵循这些步骤并使用名为Resharper的开发工具,顺便说一下这很棒:

所以,

  1. 将现有项目文件夹复制到您想要的目的地
  2. 转到源代码管理,右键单击所需的根文件夹,然后选择"将项目添加到文件夹..." 。然后,将出现一个向导选择要复制的文件(不需要某些文件,默认情况下向导会指导您)。
  3. 更改解决方案文件的名称(* .sln)
  4. 更改子项目的名称(如果存在)。
  5. 使用 Resharper 更改绑定命名空间名称(我将自动安全地执行脏作业)。另一种方法是使用新名称手动更改所有命名空间
  6. 与方法名称相同的操作。
  7. 如果要更改,请选中解决方案的属性
  8. 那就是它。你准备好了!!!

答案 4 :(得分:3)

完全复制项目是非常 NOT ADVISABLE ,因为内部形成的一些配置文件,如 .csproj,.vspscc 等可能(并且很可能会)指向到属于先前解决方案的位置和系统或TFS中的其他路径/位置的引用。除非您是阅读这些文件和修复引用的专家,否则不要尝试复制项目。

您可以创建一个与要复制的类型相同的骨架项目,这会创建一个正确的 .csproj,.vspscc 文件。现在,您可以自由复制先前项目中的类文件,脚本和其他内容,因为它们不会影响。这将确保顺利构建和版本控制(如果您选择对此感兴趣)

说完这一切之后,让我告诉你无论如何以逐步的方式复制项目的方法:

  1. 转到要在解决方案资源管理器中复制的项目,然后右键单击
  2. 现在选择'在文件资源管理器中打开文件夹'(假设您已将解决方案映射到磁盘上的本地路径)。
  3. 选择要复制的项目作为整个文件夹(以及所有依赖项,bin .vspscc文件,.csproj文件)
  4. 将它们粘贴到您想要的位置(它可能是您的解决方案文件夹,甚至是另一个解决方案文件夹。如果它位于同一个解决方案文件夹中,那么您需要将其重命名,也可以将.csproj和其他内部文件重命名为新名称。)。
  5. 不回到Visual Studio, 右键单击解决方案>添加>现有项目......
  6. 立即从您放置的位置浏览并选择项目文件(.csproj文件),然后选择“ 打开
  7. 此文件现在出现在解决方案资源管理器中供您使用。
  8. 您现在可能需要解决一些构建错误,可能是重复/缺失的引用和内容,但除此之外,它在逻辑和结构方面与您预期的一样原始。

答案 5 :(得分:1)

最好的方法是从头开始创建一个新项目,然后进入包含要复制的项目文件的文件夹(项目,form1,除文件夹之外的所有内容)。 重命名文件(例如form1文件除外)例如:我将Ch4Ex1文件复制到我的Ch4Ex2项目中,但首先将文件重命名为Ch4Ex2。 将这些文件复制并粘贴到Visual Studio中的新项目的解决方案资源管理器中。 然后只是覆盖文件,你应该好好去!

旧线程,但我希望它可以帮助任何人寻找这个答案!

答案 6 :(得分:0)

我有一个项目,源文件位于项目文件夹下的文件夹中。当我复制没有源文件夹的项目文件夹并打开复制的项目时,源文件不会丢失,但在旧位置找到。我关闭了项目,复制了源文件夹,并重新打开了项目。现在,该项目神奇地引用了复制的源文件(新路径显示在"另存为"文件中的更改已保存在复制版本中)。

有一点需要注意:如果旧的和新的项目文件夹都不在使用过的库文件夹下面,那么上面提到的魔法也会丢弃对库的绝对引用,并期望它在相同的相对路径下。

我在VS Express 2012上试过这个。

答案 7 :(得分:0)

我的解决方案有点不同 - 软件包所在的计算机已经死亡,因此我不得不在另一台计算机上重新创建它。

我所做的(在VS 2008中)是在我的目录中打开以下文件:

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

当我这样做时,一个弹出窗口询问我sln文件是否是一个新的解决方案,当我点击“是”&#39;一切都很完美。

答案 8 :(得分:0)

尝试上述解决方案&amp;为MVC项目创建副本

对于MVC项目,请更新.csproj文件中的端口号,您可以借助iis applicationhost.config来检查端口号。相同的端口号将导致IIS中的程序集加载问题。

答案 9 :(得分:0)

遵循上述Shane的回答(顺便说一句,效果很好)…

在参考列表中可能会遇到许多黄色三角形。 其中的大多数可以通过 UPDATE M SET M.STAT = 'D' FROM dbo.IM_ITEM AS M INNER JOIN IM_INV AS N ON M.ITEM_NO = N.ITEM_NO INNER JOIN dbo.PS_TKT_HIST_LIN S` ON M.ITEM_NO = S.ITEM_NO WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, N.LST_RECV_DAT))) <= '2019-01-01' AND CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, N.LST_SAL_DAT))) >= '2019-01-01' AND M.STAT = 'A' AND SUM(case when DATEPART(YYYY, (BUS_DAT)) = DATEPART(YYYY, DATEADD(YYYY, -1, getdate())) AND DATEPART(yyyy, (BUS_DAT)) = DATEPART(yyyy, DATEADD(YYYY, -1, getdate())) then qty_sold else 0)<12 Build->Clean Solution消除。

我碰巧有一些更顽固的Google API引用。

尝试重新安装相同版本的NuGet软件包无效。
Visual Studio认为您已经安装了它。

要解决此问题:
1:写下原始版本。
2:安装下一个更高版本...然后将其卸载。
3:安装步骤1中的原始版本。

答案 10 :(得分:0)

我使用Visual Studio 2013,其中“项目”>“导出模板”不是选项。 Here是我用来克隆项目的工具。

从您的解决方案: 文件>导出模板>选择要从中创建模板的项目,注意保存路径

下载并安装VS 2013 SDK Here

在可扩展性下创建新的VSIX项目

从“ VSIXManifest”对话框中,选择“资产”标签

在“作者”文本框中填写

选择“项目模板”作为“类型”,然后浏览以添加导出的模板(保存在您在步骤1中记下的路径)

保存并构建VSIX项目。转到VSIX项目的... / bin / Debug文件夹,然后双击以运行.vsix文件

启动Visual Studio的新实例,无论模板属于哪种项目类型,您都应该看到模板。从您的模板创建一个新项目

您将必须重新添加所有dll引用

答案 11 :(得分:0)

最简单的方法是将项目导出为模板并将其保存到默认模板位置。然后,将模板复制到要移动到的位置的完全相同的目录中。之后,在新位置打开Visual Studio,创建一个新项目,然后会提示您搜索模板。搜索任何您命名为模板的东西,选择它,就完成了!