我有一个相当复杂的Visual Studio解决方案(2010年,但这不重要),我需要重命名。
我想重命名文件夹以匹配新的解决方案名称,但我无法找到自动重构文件夹名称的方法,而且查看每个项目文件将是一件痛苦的事情。
有官方的做法吗?
Visual Studio中的重命名操作只更改文件名,即*。PRJ为项目,*。SLN的一个解决方案。您将需要使用文件系统单独重命名文件夹,并且您将需要删除并重新添加项目,因为它们将有新的文件夹名称。但是,请注意解决方案文件和项目文件分别是文本文件和xml文件。您可以编写自己的程序来解析它们,重命名文件夹名和文件名,并在内部修复项目/解决方案文件。
删除bin和obj子文件夹以删除不正确的引用,然后使用windows搜索旧名称。
编辑任何代码或xml文件发现和重建,现在应该是好的。
删除/添加项目文件方法
这个方法完全是为了重命名项目的目录,就像在Windows资源管理器中看到的那样。
优势
缺点
右键单击一个项目,选择“在Windows资源管理器中打开文件夹”;在执行此过程时,跟踪项目的存储位置非常有用。
手动编辑。sln文件
这个方法不会遇到下面删除/添加项目文件方法中的问题(引用消失),但是如果你的项目在源代码控制下,它会导致问题(见下面的注释)。这就是为什么第二步(备份)如此重要。
Project1
Project2
TortoiseSVN
TortoiseSVN .. Rename
你也可以看到手动重命名解决方案或文章描述了这个手工过程。
警告
更新2014-11-02
ReSharper添加了一个自动化的方法来实现与上面的手动方法相同的结果。如果命名空间下划线是弯曲的蓝色线,单击动作金字塔图标:
在第二种情况下,最后一个词定义了Windows资源管理器中的新目录名称,例如,如果我们将命名空间更改为ViewModel2,它将提供将文件移动到文件夹ViewModel2。
ViewModel2
但是,这并不一定会更新源代码控制中的文件,因此您可能仍然必须使用手动方法。
更新2018-01-31
用Visual Studio 2008、2010、2012、2013、2015、2017更新1、2、3、4、5测试。
更新2020-05-02
使用Visual Studio 2019进行测试。
更新2021-11-19
重新测试。仍能工作。
更新2022-11-30
最新版本的Git应该自动检测文件重命名,因此不需要额外注意保存差异的历史。
使用notepad++的“在文件中查找”功能对我来说很好(ctrl + H,在文件中查找)。
http://notepad-plus-plus.org/download/v6.2.2.html
您还可以导出模板,然后从导出的模板创建一个新项目,根据自己的喜好更改名称
您可以:
点击file-> new ->从现有项目创建项目
选择您的原始文件,例如。方案1,并输入新的文件名方案2
2 .在新方案中修改项目名称
重命名一个解决方案:
在“解决方案资源管理器”中,右键单击项目,选择“重命名”,然后
在解决方案资源管理器中,右键单击项目并选择属性。 在“应用程序”选项卡上,更改“程序集名称”;和“违约 namespace" . < / p >
在主cs文件(或任何其他代码文件)中,重命名命名空间 声明以使用新名称。为此,右键单击名称空间 并选择Refactor >重命名输入新名称。例如: namespace WindowsFormsApplication1 < / p >
namespace WindowsFormsApplication1
修改中AssemblyTitle和AssemblyProduct 属性/ AssemblyInfo.cs。< / p >
[assembly: AssemblyTitle("New Name Here")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("New Name Here")] [assembly: AssemblyCopyright("Copyright © 2013")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]
物理删除bin和obj目录。
打开SLN文件(在记事本或任何编辑器中)并更改路径
我尝试了Visual Studio Project Renamer,但是,它在我尝试的少数情况下抛出异常。
我已经用CopyWiz取得了很好的成功。
我与他们没有任何关系,我还没有为它付钱,但我可能很快就要为它付钱了,因为它似乎是唯一一个对我的c#和c++项目都有效的工具。我确实希望他们能赚点钱,并继续改进它。
如果您正在Visual Studio 2010中创建网站。您可以按照如下方式修改项目名称。
步骤1:在Visual Studio 2010中,SLN文件将存储在Visual Studio 2010的项目文件夹下,源文件存储在Visual Studio 2010的网站文件夹下。
步骤2:重命名文件夹右键单击该文件夹通过重命名,其中包含您的SLN项目。
步骤3:重命名SLN文件名右键单击该SLN文件转发重命名。
第四步:在Visual Studio 2010的Website下重命名包含SLN文件Source的文件夹。
步骤5:然后最后双击您的SLN文件,并更改您的SLN源文件夹的根。
唯一的解决方案,为我在Visual Studio 2013在一个WEB项目:
所以我的.csproj文件以及bin和obj文件夹的路径应该是: 路径c: \我\ \ project1 \ project1 \ < / p >
在VS中双击project1打开解决方案。sln文件。
在“解决方案资源管理器”中,右键单击项目(不是解决方案!!),选择“重命名”,并输入一个新名称。
在“解决方案资源管理器”中,右键单击项目并选择“属性”。在“应用程序”选项卡上,更改“程序集名称”和“默认名称空间”。
在主CS文件(或任何其他代码文件,如全局。例如Asax),重命名命名空间声明以使用新名称。为此,右键单击名称空间并选择重构>重命名输入一个新名称。例如:
名称空间project1
4.1在“解决方案资源管理器”中,右键单击项目(不是解决方案!!),选择“重命名”,并输入新的名称。
关闭Visual Studio。
从物理上删除bin和obj目录。
重命名父文件夹和源文件夹为新名称(project2):
例子中: 我c: \ \路径\ project1 \ project1 < / p > < p >将会是: c: \我\ \ project2 \ project2路径< / p >
重命名SLN文件名右键单击该SLN文件转发重命名。
最后打开SLN文件(在记事本或任何编辑器内),复制并替换(Ctrl+h)任何旧名称到新名称。
打开VS,点击BUILD -> Clean Solution
点击构建->构建解决方案,然后F5运行…
Note1:如果你得到这样的东西:编译错误 CS0246:无法找到类型或命名空间名称“project2”(您是否缺少一个using指令或程序集引用?)
c:\Users\Username\AppData\Local\Temp\Temporary ASP. exe网络文件\ \ 78 dd917f \ d0836ce4 \ App_Web_index.cshtml.a8d08dba.b0mwjmih.0.cs根源
然后进入“临时ASP。NET Files”文件夹并删除所有文件。
我是vs的新手,我只是遇到了同样的问题:需要在工作几周后重新命名一个已经开始的项目。我就是这么做的,而且成功了。
重命名网站:
http://www.c-sharpcorner.com/Blogs/46334/rename-website-project-in-visual-studio-2013.aspx
查找并编辑IISExpress的applicationhost。配置,在这里找到: C: \用户{username} \ \ IISExpress \ config文件< / p >
下面是在Visual Studio 2013中逐步重命名整个解决方案的方法
假设我们正在更改一个名为“helloworld .ui”的项目;“;Section1to5.ui"
右键单击刚刚重命名的项目,然后单击“属性”。在“应用程序”选项卡下,更改“程序集名称”;和“默认名称空间”。
名称空间HelloWorld。ui——比;名称空间Section1to5.ui
接下来,展开“properties”;双击AssemblyInfo.cs文件。你会注意到下面的代码片段:
[assembly: AssemblyTitle("HelloWorld.ui")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("HelloWorld.ui")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]
您需要将Properties/AssemblyInfo.cs中的AssemblyTitle和AssemblyProduct更改为新名称,在本例中为"HelloWorld.ui"Section1to5.ui"“帮助”。更改完名称后,保存并关闭Visual Studio。
项目("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.ui" HelloWorld.ui\HelloWorld.ui. csproject "{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}"
替换helloworld .ui的所有实例;您为项目选择的新名称,在本例中为“section1 to5.ui”。这将把项目的路径更改为步骤6中重命名的目录。
你可能注意到&;Debug/ run &;按钮已被“附件”所取代;按钮。如果发生这种情况,只需右键单击项目并选择“设置为启动项目”;选择。或者,单击Tools>Customize>Commands>Add command>Debug并添加按钮。
你完成了重命名项目,如果你有任何疑问,请随时发帖,我很乐意帮助你!
连同这个链接的答案
https://stackoverflow.com/a/19844531/6767365 < a href = " https://stackoverflow.com/a/19844531/6767365 " > < / >
如果在加载Xamarin等共享项目时遇到问题,请记住在csproj文件中更改对共享库的引用。我开发了一款CocosSharp游戏,但Droid/iOS/WP81项目不想加载。我不得不在每个csproj文件(Driod/iOS/WP81)中更改下面的行,其中引用了共享库。这是由于文件夹名称更改造成的,因此将YOUR_PREVIOUS_NAMESPACE替换为文件夹的新名称。
<Import Project="..\YOUR_PREVIOUS_NAMESPACE.Shared\EmptyProject.Shared.projitems" Label="Shared" />
另外,我注意到对于. driod项目,项目属性中的程序集名称不能使用Visual Studio更改(我使用2015年)。我必须在. droid中手动更改程序集名称。csproj文件。
<AssemblyName>YourNameSpace</AssemblyName>
然后我加载解决方案,在项目属性视图新名称出现。重建dll后生成该名称。
2021年更新:
renameproject使这毫不费力。一个简单的CLI工具,它甚至在成功时创建一个git提交。
https://github.com/ModernRonin/ProjectRenamer
旧的回答:
我使用Visual Studio扩展“完全重命名项目”;在ASP中成功地重命名项目。NET Core 2解决方案。
我使用ReSharper然后调整名称空间(右键单击项目,重构,调整名称空间…)
https://github.com/kuanysh-nabiyev/RenameProjectVsExtension
我已经遵循https://gist.github.com/n3dst4/b932117f3453cc6c56be链接,我能够成功地重命名我的整个解决方案。
如果,在遵循建议的解决方案之后,你已经设法重命名了一个新的解决方案(假设从www.oldsite.com到www.newsite.com),但仍然有旧的Web站点项目名称,因为你有一个旧的“ASP;Net Web Site",然后遵循这些额外的步骤(假设从project1到project2)。
现在您可以保存所有内容,并使用Visual Studio 2022再次打开它。所有这些都是需要的,因为VS2019/VS2020不支持“旧的”;ASP。Net网站创建,但只编辑。
如果要重命名解决方案,可以执行以下步骤。
在“解决方案资源管理器”中,右键单击项目,选择“重命名”,并输入一个新名称。
在解决方案资源管理器中,右键单击项目并选择属性。在“应用程序”选项卡上,更改“程序集名称”;和“默认名称空间”。
清理和重建项目
细节…https://learn.microsoft.com/en-us/answers/questions/1028483/rename-solution-and-related-projects-in-a-aspnet-w.html