代码之家  ›  专栏  ›  技术社区  ›  rball

在Visual Studio(2008)中,有没有一种方法可以将自定义依赖文件保存在另一个自定义文件上?

  •  13
  • rball  · 技术社区  · 15 年前

    我希望有一个*.js文件,而不是后面或旁边的*.cs代码。我正在开发一个MVC应用程序,因为我有控制器,所以不需要添加代码,但是在某些情况下,最好在旁边添加一个javascript代码,或者用某种方法将文件与正在使用的页面相关联。我想我可以用类似的方式命名它们,但是我想尽可能地展示关联,所以对于文件的用途没有疑问。

    通常我所说的是在Visual Studio中,现在在global.asax文件下,您将在左侧有一个加号:

    + Global.asax
    

    一旦你扩大它,你就会

    - Global.asax
        Global.asax.cs
    

    我也希望发生同样的事情:

    + Home.spark
    
    - Home.spark
        Home.spark.js
    

    更新:

    我现有的csproj文件有一个到实际文件的路径,不确定这是否把它搞砸了。我现在有:

    <ItemGroup>
        <Content Include="Views\User\Profile.spark.js">
          <DependentUpon>Views\User\Profile.spark</DependentUpon>
        </Content>
      </ItemGroup>
      <ItemGroup>
        <Content Include="Views\User\Profile.spark" />
      </ItemGroup>
    

    它只是把文件放在一起。

    6 回复  |  直到 9 年前
        1
  •  11
  •   Jon Skeet    15 年前

    当然-但是你必须手工编辑项目文件。找到“child”文件的条目,并将其更改为非自动关闭元素,然后添加一个子元素来说明它所依赖的内容。下面是正在编译的.cs文件的示例:

    <Compile Include="AssertCount.cs">
      <DependentUpon>MoreEnumerable.cs</DependentUpon>
    </Compile>
    

    这里有一个我刚刚为你指定的文件做了模型化的版本-尽管我希望 Home.spark 将有一个与之相关联的操作,而不是“无”:

    <ItemGroup>
      <Content Include="Home.spark.js">
        <DependentUpon>Home.spark</DependentUpon>
      </Content>
    </ItemGroup>
    <ItemGroup>
      <None Include="Home.spark" />
    </ItemGroup>
    

    Visual Studio按预期的方式显示它。

        2
  •  16
  •   Rico Suter    11 年前

    VSCommands 允许您直接从IDE配置依赖文件的加载项

    链接已更新,以前是 http://mokosh.co.uk/vscommands

    仅供参考:安装vscommands后,只需选择要依赖的所有文件和根文件,然后右键单击->组项…vscommands会询问您希望哪个文件是根文件。

        3
  •  2
  •   user88363    15 年前

    我不知道如何通过Visual Studio UI本身来实现,但是如果您在文本编辑器中打开csproj文件,您可以看到它们如何在global.asax中实现这一点。

    它通常看起来像这样:

    <Compile Include="Global.asax" />
    <Compile Include="Global.asax.cs">
        <DependentUpon>Global.asax</DependentUpon>
    </Compile>
    
        4
  •  0
  •   Michael Shimmins    14 年前

    虽然这里的其他解决方案(编辑项目文件)适用于单个文件,但我们也做了同样的事情,但我们希望它能自动地适用于所有*.conv和*.conv.js文件,而不是必须为每个文件编辑项目文件。

    当我们将一个新的.conv文件添加到我们的应用程序中时,如果我们有一个*.conv.js文件,它会自动嵌套在它下面,正如您对.aspx和*.aspx.cs所期望的那样。

    我找不到我以前设置的原始教程(它涉及注册表黑客),但我刚才在谷歌搜索中发现的一个教程描述了相同的事情:

    http://blog.dotnetwise.com/2009/09/visual-studio-2008-custom-nested-files.html

        5
  •  0
  •   Vitaliy Ulantikov Peter Miehle    12 年前

    如果您需要为某个文件添加代码隐藏,有一个解决方法。例如,你想 试验室 一个孩子 XAML . 完成以下步骤:

    1. 排除两者 XAML 试验室 从项目中,保存项目。

    2. 卸载项目。

    3. 重新加载项目。

    4. 单击文件资源管理器窗格中的“显示隐藏文件”。

    5. 文件 试验室 将显示为的子级 XAML .

    6. 将文件添加回项目,保存项目。

    就是这样。现在 试验室 依赖于 XAML .

        6
  •  0
  •   Kro    9 年前

    您可以手工编辑项目文件,建议使用john skeed,或者也可以查看 File Nesting Extension for Visual Studio 那将为你完成这项工作。