如何将项目移动到Visual Studio中的其他文件夹?我在项目中习惯了这种结构。
-- app
---- Project.Something
---- Project.SomethingElse
我想将整个命名空间SomethingElse重命名为SomethingNew,这样做的最佳方法是什么(无需手动进入.sln文件)?
如何将项目移动到Visual Studio中的其他文件夹?我在项目中习惯了这种结构。
-- app
---- Project.Something
---- Project.SomethingElse
我想将整个命名空间SomethingElse重命名为SomethingNew,这样做的最佳方法是什么(无需手动进入.sln文件)?
Answers:
在解决方案资源管理器窗口中右键单击项目,然后选择“删除”,从项目中删除项目。将整个项目文件夹,包括子目录,移动到您想要的任何位置。将项目添加回您的解决方案。
命名空间名称完全不同,只需编辑源代码即可。
我尝试了删除并重新添加项目的建议,但是修复依赖项可能很麻烦。
我使用这种方法:
git mv ...
而不是mv ...
。请参阅git-mv
文档以获取更多信息。
我有同样的问题。我在不到15分钟的时间内移动了参考文献,而没有更改参考文献。
对我来说,解决方案很简单:
例子:
在解决方案文件(.sln)中
原始文件: Project(“ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“ PATH1.UI”,“ ScannerPDF \ PATH1.UI \ PATH1.UI.csproj”,“ {A26438AD-E428-4AE4-8AB8-A5D6933E2D7B }“ Project(” {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}“)=” PATH1.DataService“,” ScannerPDF \ PATH1.DataService \ PATH1.DataService.csproj“,” {ED5A561B-3674-4613-ADE5-B13661146E2E }”
新建: Project(“ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“ PATH1.MX.UI”,“ PATH1.MX.UI \ PATH1.UI.csproj”,“ {A26438AD-E428-4AE4-8AB8 -A5D6933E2D7B}“ Project(” {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}“)=” PATH1.DataService“,” PATH1.DataService \ PATH1.DataService.csproj“,” {ED5A561B-3674-4613-ADE5-B13661146E2E }”
在项目文件中:
原版的:
新:
原始参考: .... \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll
新参考: .. \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll
摘要:在VS2019中使用git重命名和移动,保留git历史记录,稍微利用R#,自动依赖项目引用更新(对于sln的许多项目很重要,我们有200多个)
我一直在使用以下步骤在Visual Studio 2019中重命名和移动C#项目。此过程使用R#调整名称空间。通过执行“ git mv”来保留git历史记录(避免添加/删除历史记录删除操作)。
分两个阶段:1)将项目重命名到位,2)移动项目。
(使用来自base2重新卸载项目的技巧。)
改名
注意:到目前为止,Windows资源管理器中的文件夹仍为旧名称(例如,Utils.Foo)。在移动步骤中已解决此问题。
移动
该方法:1)保留git历史记录,2)利用R#原子地调整名称空间,以及3)大规模更新依赖项目(避免繁琐的手动编辑依赖sln和csproj文件)。
卸载解决方案中的所有项目(以便删除目标项目不会触发相关项目中的更改)
VS | 选择解决方案|下的所有解决方案文件夹。右键单击“卸载项目”
使用git移动文件夹(因此历史记录得以保留)
a)在2019年打开开发人员命令提示符
b)git状态(以说明“什么也没提交,工作树干净”)
c)git mv项目,例如git mv“ C:\ Code \ foo \ foo \ Utils.Foo”“ C:\ Code \ Foo”
d)git状态以查看/验证更改
VS | 解决方案资源管理器| 选择项目 右键单击| 删除(由于所有项目均已卸载,因此将不会在相关项目中正确删除对它的引用)
a)VS | 解决方案资源管理器| 选择目标父文件夹| 右键单击| 新增| 现有项目
重要说明: 确认相关项目的* .csproj文件已更新。
(VS | Team Explorer |更改|双击列出的任何相关csproj |检查并验证ProjectReference路径更改)
使用记事本++(或其他文本编辑器)修复路径。通常,这可以通过简单的搜索和替换(例如,.. / .. / .. / .. /到../../)来完成。
这将更新...
a)GlobalAssmeblyInfo.cs参考
b)包的路径
c)依赖关系验证图文件的路径
d)规则集路径的路径(例如<CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
全部保存,关闭解决方案,我更喜欢删除bin和obj文件夹以清除历史记录,重新打开解决方案
a)VS | 团队资源管理器| 变化
i)应该看到显示已移动文件的暂存更改ii)应该看到更新良好的从属项目(* .csproj),请查看csproj差异,并注意路径已进行了精美的更新!(这是避免使用文本编辑器费力地手动更新csproj文件的魔力)
b)在Windows资源管理器中,确认旧位置为空
c)清洁解决方案,重建解决方案,运行单元测试,在sln中启动应用程序。
我想出了这个尝试对我有用。
在Visual Studio 2017社区版中,它将在此路径“ C:\ Users \ mark \ source \ repos \ mipmaps \ mipmaps”下创建一个项目。这将创建对文件的访问被拒绝的问题
现在,您可以通过这种方式解决此问题。
关闭Visual Studio流程。然后,找到您的项目并复制项目文件夹,但是,首先在文档的Visual Studio 2017文件夹中创建一个名为Projects的子文件夹。接下来,将项目文件夹粘贴到Visual Studio 2017项目文件夹中,而不是粘贴到名为Projects的子文件夹的主Visual Studio 2017文件夹中。接下来,重新启动Visual Studio 2017,然后选择“打开项目解决方案”,然后在Visual Studio 2017“项目”文件夹中找到您粘贴的项目,然后清理该项目并重新生成它,它应该可以正常编译和编译。希望这对其他人有所帮助。不确定Microsoft为什么认为在需要写权限的路径上构建项目超出了我的范围。
我希望Git中的更改显示为移动/重命名,而不是删除和添加。所以我做了以上和这篇文章的组合。
mkdir subdirectory
git mv -k ./* ./subdirectory
# check to make sure everything moved (see below)
git commit
并通过文本编辑器从sln文件中的nuget Pkg调整项目和程序集的路径。
使用解决方案文件夹将相关项目分组在一起
参见http://msdn.microsoft.com/zh-cn/library/vstudio/c6c756s6(v=vs.100).aspx