【问题标题】:How to stop visual studio from automatically adding remove in an item group in my csproj?如何阻止 Visual Studio 在我的 csproj 的项目组中自动添加删除?
【发布时间】:2021-09-19 03:32:42
【问题描述】:

我有一个 .NET 5 WPF 项目,在 csproj 文件中,我有

    <ItemGroup>
        <ViewModelFiles Include="**\*ViewModel.cs"></ViewModelFiles>
        <Content Include="@(ViewModelFiles)">
            <DependentUpon>$([System.String]::Copy('%(FileName)').Replace('Model', '.xaml'))</DependentUpon>
        </Content>
    </ItemGroup>

但是,每当我在项目中添加新项目时,IDE 都会自动在 csproj 文件中添加一行 remove。比如添加Visual\Settings\Control\InputActionViewModel.cs后:

    <ItemGroup>
        <ViewModelFiles Include="**\*ViewModel.cs"></ViewModelFiles>
        <ViewModelFiles Remove="Visual\Settings\Control\InputActionViewModel.cs" />
        <Content Include="@(ViewModelFiles)">
            <DependentUpon>$([System.String]::Copy('%(FileName)').Replace('Model', '.xaml'))</DependentUpon>
        </Content>
    </ItemGroup>
</Project>

这很麻烦,因为我需要为我创建的每个项目进行额外的手动操作。我想知道如何关闭这个自动生成。

【问题讨论】:

  • 请提供更多信息:VS版本,重现问题的最小但完整的项目文件,目录结构。

标签: c# .net visual-studio msbuild


【解决方案1】:

我想这是因为这条线

<ViewModelFiles Include="**\*ViewModel.cs"></ViewModelFiles>

已阐明包含 *ViewModel.cs 文件。而且,您正在使用新的 SDK 项目,添加的项目(文件)将自动包含在项目中。所以,两次,MSBuild 会自动删除名为 *ViewModel.cs 的项目。

如果在添加项目时测试更改名称,例如 ViewModelXXX.cs 或 ViewXXXModel.cs,则不会添加一行。

如果你测试先添加item,再添加这一行

<ViewModelFiles Include="**\*ViewModel.cs"></ViewModelFiles>

也不会添加一行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多