Visual Studio复制项目

sar*_*ake 119 visual-studio-2008 visual-studio

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

VS中有工具可以做到这一点吗?我正在使用VS 2008

Mit*_*ers 135

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

  • 如果同一解决方案中存在具有相同GUID的另一个项目,则项目GUID将自动由VS更新. (49认同)
  • 那么ProjectGUID会发生什么? (23认同)
  • 如果您有任何(我做过!) - > http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders,请不要忘记删除svn文件. ASPX (4认同)
  • 我艾米尝试这样做,但它不会重命名应用程序名称空间。不是我要找的东西。 (3认同)
  • VS社区2017版本15.8.4中的项目GUID不会自动更新.事实上,如果你的AssemblyInfo.cs在源代码控制中怎么可能呢? (3认同)

Sha*_*ane 94

只需创建一个模板 ;

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

该向导将允许您定义

  • 模板名称
  • 模板描述
  • 图标
  • 预览图片

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

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

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

我制作了一个ASP.NET MVC模板,其中包含文件夹,布局页面,视图模型等,以及我喜欢它们的方式.

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

  • IMO,最佳答案. (23认同)
  • 在VS2017中,"导出模板"位于"项目"顶级菜单项下. (11认同)
  • 这非常有用,以前我怎么不知道呢?谢谢! (3认同)
  • 这应该是选择的答案。很容易!该过程也应该将其复制到您的Templates \ ProjectTemplates文件夹中,只需确保。我必须重新启动Visual Studio才能在项目创建对话框中看到它。 (3认同)
  • 在VS2019中搜索模板找不到我的新模板。另外,如果我过滤了语言或平台,新模板就会从列表中消失,即使我有正确的语言/平台……有点令人困惑,但最终很棒。 (3认同)
  • 当需要导入模板来创建一个新项目时,我不知道该怎么做。原来,我不得不使用“新建项目”对话框中的搜索栏来查找模板。 (2认同)

Vik*_*m K 8

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

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

说了这么多,让我给你分步复制项目的方法:

  1. 在解决方案资源管理器中转到要复制的项目,然后右键单击
  2. 现在选择在文件资源管理器中打开文件夹(假设您已将解决方案映射到磁盘上的本地路径)。
  3. 选择要作为整个文件夹复制的项目(以及所有依赖项、bin .vspscc 文件、.csproj 文件)
  4. 将它们粘贴到您想要的位置(它可以是您的同一个解决方案文件夹,甚至是另一个解决方案文件夹。如果它在同一个解决方案文件夹中,那么您需要将其重命名,也将 .csproj 和其他内部文件重命名为新名称)。
  5. 不要回到 Visual Studio,右键单击解决方案>添加>现有项目...
  6. 现在从您放置它的位置浏览并选择项目文件(.csproj 文件),然后选择“打开
  7. 此文件现在出现在解决方案资源管理器中供您工作。

您现在可能需要解决一些构建错误,其中可能包含重复/缺失的引用和内容,但除此之外,它在逻辑和结构上与您预期的一样原始。

  • 更新:截至 2019 年的最佳答案是 @Shane 的以下答案。制作 VS 模板是克隆项目而不会出现引用问题的完美方式。 (3认同)

qui*_*uip 6

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

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

CodePlex上还有这个项目:

http://clone.codeplex.com/

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