在现有目录中创建项目/解决方案?

问题描述 投票:0回答:8

如何在同一现有目录中创建新项目和解决方案?无论我做什么,它都会不断为项目创建一个新的(子)目录并填充该目录而不是已经存在的目录。我清除了“为解决方案创建目录”复选框,以便它将解决方案放入同一文件夹中,而不是创建解决方案文件夹,但它仍然继续创建项目子文件夹。

我该如何解决这个问题?!?

这困扰了我很长时间,但到目前为止我一直能够忽略它或解决它。但现在它在我的客户项目中影响了我的生产力,我需要解决它。谢谢...RBarryYoung

(注:这是VS2005,面向软件开发人员的团队版)

visual-studio ide visual-studio-2005 visual-sourcesafe
8个回答
30
投票

在 Visual Studio 中,如果没有打开解决方案,可以选择

文件->新建->现有代码的项目

选择项目类型

将您想要解决方案和项目文件所在的目录作为“项目文件位置”字段。

完成向导,您将在同一目录中拥有项目文件和解决方案文件。

如果“从现有代码进行项目”选项不可用

使用 VS 的自定义功能制作自定义键盘快捷键、工具栏按钮或菜单项。

工具->自定义

选择“键盘”按钮添加键盘快捷键,或选择“命令”选项卡添加工具栏按钮或菜单项。您正在寻找的命令是:

文件->从现有代码创建新项目

分配任何键盘快捷键或将图标拖动到您想要的任何菜单/工具栏。


13
投票

要在现有目录中创建解决方案,我发现最好的方法是将其创建为距您实际需要的位置较远的一个目录,然后使用您真正需要的目录的名称作为解决方案的名称。

如果这不是您想要的名称(即您不希望您的解决方案名称与其所在目录的名称相匹配),那么一旦您创建了它,您可以通过右键单击它来重命名该解决方案,然后选择“重命名”。它不会重命名它所在的目录,也不会移动它。这是迄今为止最简单的方法。

您显然也可以对项目使用相同的技巧,但是如果您在一个目录中有多个项目,理想情况下它们构建的中间目录应该不同,否则如果您只想重建,您将会遇到问题其中之一,它会清除中间目标目录。


1
投票

您始终可以手动移动内容并编辑 sln 文件来修复项目引用。例如,如果您希望解决方案文件与项目文件位于同一目录中,则可以从任意位置剪切解决方案文件并将其粘贴到项目文件目录中。然后您需要编辑解决方案文件以修复项目引用,以便解决方案在打开时可以找到该项目。


0
投票

我不知道有什么适合您的现成解决方案。但是,如果代码文件根据所需的结构组织到文件夹中,您也许可以组合一个工具来为您完成此操作。项目文件的结构并不是非常复杂,它们是相当简单的 XML 文档,主要由项目中包含的文件列表组成。

我认为生成的项目文件可能仍然需要一些手工劳动,但您应该能够获取代码来为您完成繁重的工作。您可能会得到一个漂亮的工具来在您的博客上发布。


0
投票

就我而言,我从存储库中提取了一个项目,并想在这个空目录中添加一个解决方案。 我只是使用相同的目录名称在另一个路径中创建一个解决方案,然后将所有元素复制到该空目录中,它似乎有效。


-2
投票
  1. 打开现有项目。如果您还没有,请创建一个临时的。
  2. 选择“文件”>“新建”>“项目”
  3. 确保选择“创建新解决方案”
  4. 选择您想要的项目类型。
  5. 按“确定”创建项目

如果您在第一步中创建了临时项目,您现在可以将其删除

-> 现在您已经创建了一个项目,其中解决方案文件位于项目内


-3
投票
            public static class SlnFileGenerator
            {
                #region Public Methods
                public static string GetBatFileContent(string directoryPath, string slnFileName)
                {
                    if (directoryPath == null)
                    {
                        throw new ArgumentNullException(nameof(directoryPath));
                    }

                    if (slnFileName == null)
                    {
                        throw new ArgumentNullException(nameof(slnFileName));
                    }

                    var sb = new StringBuilder();
                    sb.AppendLine($"dotnet new sln --name {slnFileName}");

                    foreach (var csprojFile in Directory.GetFiles(directoryPath, "*.csproj", SearchOption.AllDirectories))
                    {
                        var relativePath = csprojFile.RemoveFromStart(directoryPath);

                        sb.AppendLine($"dotnet sln \"{slnFileName}.sln\" add \"{relativePath}\"");
                    }

                    sb.AppendLine("pause");

                    return sb.ToString();
                }
                #endregion
            }

-3
投票

实现这一目标的最简单方法是使用 Visual Studio Code 扩展 vscode-solution-explorer

https://marketplace.visualstudio.com/items?itemName=fernandoescolar.vscode-solution-explorer

在要创建 .sln 文件的文件夹中,使用扩展程序中的“创建新的空解决方案”命令。

然后转到 VS Code 中的扩展(解决方案)选项卡,在顶部右键单击您创建的解决方案的名称,然后单击“添加现有项目”。导航到该项目的 .csproj 文件即可。准备在 Visual Studio 2022 中使用 Intellisense 等打开的 .sln 文件。

如果您想向解决方案添加更多项目,请执行与上述步骤相同的过程。太容易了。希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.