Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio 2013解决方案文件夹在哪里?_Visual Studio_Visual Studio 2013_Solution - Fatal编程技术网

Visual studio Visual Studio 2013解决方案文件夹在哪里?

Visual studio Visual Studio 2013解决方案文件夹在哪里?,visual-studio,visual-studio-2013,solution,Visual Studio,Visual Studio 2013,Solution,我目前的处境: 我有一个解决方案,将一个大型MVC项目拆分为两个较小的项目。当然,这两个较小的项目引用了旧的较大项目中相同的JavaScript和内容文件 我想做什么: 我不想复制2个项目中的脚本和内容,而是想创建一个共享文件夹,2个项目使用链接或快捷方式引用该文件夹 我是如何解决问题的: 我认为解决方案文件夹是我问题的解决方案。因此,我想创建一个解决方案文件夹,将所有脚本和内容文件移动到该文件夹中 但是,我的问题是,我必须逐个文件移动到此文件夹,因为我们不能简单地添加现有文件夹(我将脚本和内容

我目前的处境:

我有一个解决方案,将一个大型MVC项目拆分为两个较小的项目。当然,这两个较小的项目引用了旧的较大项目中相同的JavaScript和内容文件

我想做什么:

我不想复制2个项目中的脚本和内容,而是想创建一个共享文件夹,2个项目使用链接或快捷方式引用该文件夹

我是如何解决问题的:

我认为解决方案文件夹是我问题的解决方案。因此,我想创建一个解决方案文件夹,将所有脚本和内容文件移动到该文件夹中

但是,我的问题是,我必须逐个文件移动到此文件夹,因为我们不能简单地添加现有文件夹(我将脚本和内容文件夹移动到解决方案目录本身,而不是移动到特定项目中)。这太无聊了

以下是我试图做的:

  • 首先,我试图找到创建解决方案文件夹的位置。但是,我发现解决方案文件夹实际上并不存在。我认为它们只是你的解决方案的某种逻辑结构。无论何时将文件添加到解决方案文件夹,它都会被物理地添加到解决方案目录中
  • 我认为解决方案文件(.sln)可能包含解决方案文件夹的配置及其某种xml格式的内容。然而,情况似乎并非如此
  • 我打开了解决方案的SQL Server Compact Edition文件(.sdf),认为可能有一个描述解决方案文件夹的DB表。然而,情况似乎并非如此
  • 最后,我的问题是:

    是否有简单的方法将现有文件夹添加为解决方案文件夹,以避免逐个添加文件(我的文件太多)

    更新:

    谢谢你的回答和建议。我最终采取了一种不同的方法。我使用了一个预构建命令:
    XCOPY“$(SolutionDir)Files\*.*”$(ProjectDir)“/E
    我这样做是因为建议的解决方案和我以前的尝试是向外部资源文件添加链接/快捷方式。虽然这很好,而且快捷方式实际上添加到了项目中,但当我测试MVC项目时,IIS没有加载资源文件,因为它查找物理文件(当然)


    所以我现在的问题是:是否有某种方式,无论是在csproj文件中的构建事件还是配置,都可以“在项目中包含”新“物理”复制的文件?

    据我所知,visual studio没有通过其界面提供此功能。其目的可能是项目文件存在于项目文件夹中,而不是单独存在。它通常使项目工作更容易(移动、共享等)

    也就是说,您不必让项目位置中的每个真实文件夹都包含在该项目中。因此,您可以执行类似以下文件夹结构的操作:

    + /Projects (contains ProjectA.csproj and ProjectB.csproj)
        |
        +-- /ProjectA (folder with files that are just for "ProjectA"
        |
        +-- /ProjectB (folder with files just for "ProjectB")
        |
        +-- /Shared (Folder with your shared scripts/files)
    
    使用此结构,您应该能够使用“显示所有文件”按钮,并在两个项目中包括共享文件夹。您可能需要手动编辑csproj文件以映射到此新结构,但这应该不会太困难

    我能想到的唯一其他选择是尝试手动编辑csproj文件,例如


    希望一切都有帮助。祝你好运

    正如drew建议的那样:编辑项目文件是一种方法。另一种方法是以类似于csproj文件的机制编辑解决方案文件。 在解决方案文件中,具有特定GUID的项目包含一组文件夹的详细信息

    编写一个小应用程序,它将读取您的文件夹并输出所需输出的小文本。生成新的guid,直到创建文件为止。只需将其粘贴到.sln文件的顶部。2150E333-8FDC-42A3-9474-1A3956D46DE8似乎是用于解决方案项的GUID

    此示例有几个子文件夹,其内容为嵌套结构。 i、 e

    EndProject

    解决方案文件夹(在文件系统上)是可选的,在Visual Studio中,它们通常仅用于在Visual Studio中组织文件

    手动创建与解决方案相同级别的“物理”文件夹是一种方法,但这样可以降低复杂性

    以下是移动单个脚本文件的步骤:

    在文件系统上

  • 创建解决方案文件夹(通常位于顶级目录)
  • 将脚本文件从一个项目复制到解决方案文件夹
  • 在Visual Studio中

  • 创建解决方案文件夹
  • 右键单击解决方案文件夹,选择添加>现有项
  • 从文件系统上的“新建解决方案”文件夹中选择“脚本文件”,然后单击“添加”
  • 从项目1中排除/删除脚本文件
  • 右键单击项目1,选择添加>现有项目
  • 从文件系统上的解决方案文件夹中选择脚本文件,从添加按钮的下拉列表中选择“添加为链接”
  • 对所有其他项目重复步骤6-8
  • 通过使用“添加为链接”我们所做的主要工作是在解决方案文件夹中添加对脚本的引用,而不是将实际文件复制到项目文件夹中


    请注意,您不局限于一次处理一个文件,它只是更易于跟踪。

    我对这个问题的最终解决方案是将建议的解决方案和我决定采取的方法结合起来,以便本地IIS可以查看这些文件

    我在csproj文件中添加了以下部分:

        <Content Include="..\Files\**">
        <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    </Content>
    
    
    %(RecursiveDir)%(文件名)%(扩展名)
    

    我还在我的项目中添加了以下命令作为预构建事件:
    XCOPY/y“$(SolutionDir)Files\*.*”$(ProjectDir)”/E

    我所知道的查找解决方案文件夹位置的最快方法
        <Content Include="..\Files\**">
        <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    </Content>