我想复制一下我的项目。我宁愿不通过添加文件和引用等从头开始这样做。请注意,我不是指复制部署。只是简单的复制。
VS中是否有工具可以执行此操作?我正在使用VS 2008
答案 0 :(得分:128)
如果您想要副本,最快的方法是保存项目。然后在文件系统上复制整个内容。返回Visual Studio并打开副本。从那里,我很可能会建议重新命名项目/解决方案,以便您没有两个相同的名称,但这是制作副本的最快方法。
答案 1 :(得分:67)
从您的项目中选择:项目 - 导出模板
该向导将允许您定义
然后它将您的项目压缩到“我的导出模板”目录中。 您还可以选择在创建新项目时使模板可用。
当您使用模板创建新项目时,命名空间对于每个文件中的“your_new_project_name”都是正确的,所有引用都是正确的,所有内容都是完美的:)
您可以将.zip文件发送给任何人,他们必须将.zip文件复制(不解压缩)到Templates \ ProjectTemplates目录中,以便他们使用。
我制作了一个带有文件夹,布局页面,视图模型等的ASP.NET MVC模板,这些模板按我喜欢的方式排列。
注意:
如果项目中有一个空文件夹,它将不会被添加到模板中,所以我只添加了一个适合每个文件夹的空类,以及一个图像文件夹的示例图片。
答案 2 :(得分:6)
我想如果这是你经常做的事情,有一个小的(非自由的)实用工具承诺为你做这件事:我还没有用过它,所以不确定它有多好:
http://www.kinook.com/CopyWiz/
CodePlex上还有这个项目:
我可能会尝试使用codeplex项目,如果它不起作用,我将手动重命名所有内容并编辑sln文件。
答案 3 :(得分:3)
我遵循这些步骤并使用名为Resharper的开发工具,顺便说一下这很棒:
所以,
那就是它。你准备好了!!!
答案 4 :(得分:3)
完全复制项目是非常 NOT ADVISABLE ,因为内部形成的一些配置文件,如 .csproj,.vspscc 等可能(并且很可能会)指向到属于先前解决方案的位置和系统或TFS中的其他路径/位置的引用。除非您是阅读这些文件和修复引用的专家,否则不要尝试复制项目。
您可以创建一个与要复制的类型相同的骨架项目,这会创建一个正确的 .csproj,.vspscc 文件。现在,您可以自由复制先前项目中的类文件,脚本和其他内容,因为它们不会影响。这将确保顺利构建和版本控制(如果您选择对此感兴趣)
说完这一切之后,让我告诉你无论如何以逐步的方式复制项目的方法:
您现在可能需要解决一些构建错误,可能是重复/缺失的引用和内容,但除此之外,它在逻辑和结构方面与您预期的一样原始。
答案 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,创建一个新项目,然后会提示您搜索模板。搜索任何您命名为模板的东西,选择它,就完成了!