【问题标题】:Hide files in .csproj without excluding them from build隐藏 .csproj 中的文件而不将它们从构建中排除
【发布时间】:2018-01-18 16:13:08
【问题描述】:

是否可以隐藏 .net core csproj 中的文件/文件夹而不将它们排除在构建之外?我有一个包含生成文件的文件夹,我希望它们在 Visual Studio 的解决方案资源管理器中不可见。

【问题讨论】:

    标签: visual-studio .net-core visual-studio-2017 csproj


    【解决方案1】:

    您可以在项目上设置Visible="false" attribute

    对于基于 SDK 的项目(.net core / asp.net core 模板),您可以添加例如:

    <ItemGroup>
      <Content Update="**/*.css" Visible="false" />
    </ItemGroup>
    

    根据您的项目类型(=> 默认值),您可能必须将 Content 替换为特定类型的 None,或者甚至将 Compile 替换为生成的代码文件。

    【讨论】:

    • 也可以隐藏文件夹吗?这隐藏了 Generated 文件夹中的所有文件,但空文件夹仍然可见...
    • 据我所知,这是不可能的。许多新工具尝试自动生成到 obj ($(BaseIntermediateOutputPath)) 并在构建期间包含项目,而不是使用 Link 元数据作为静态(“根级别”)项目......但是是的,我也有流浪 @987654330 @/css文件夹等
    • 这应该适用于 .Net Core 项目吗?我添加了Visible 标签,文件仍然显示在解决方案资源管理器中。
    • 对于 NetCore 和 NetStandard 它对我不起作用,除非我使用 None。 &lt;None Remove="**/*.asmdef" Visible="false"/&gt;
    • 对我来说,它不能作为属性仅作为元素 False
    【解决方案2】:

    感谢 Martin 的回答,我找到了一种使用 **\** 将其应用于整个文件夹的方法。例如,对于包含由 TypeScript (TypeScriptCompile) 编译的文件的 ASP.NET Core wwwroot\Scripts 文件夹:

        <ItemGroup>
            <TypeScriptCompile Update="wwwroot\Scripts\**\**" Visible="False" />
            <Content Update="wwwroot\Scripts\**\**" Visible="False" />
        </ItemGroup>
    

    正如他的回答所指出的,您可以在其中添加更多类型,例如 None

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      相关资源
      最近更新 更多