Visual Studio 递归折叠解决方案项目
Visual Studio folding solution items recursively
我正在尝试折叠所有 XAML 家属文件。
<None Include=".\**\*.xaml.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DependentUpon>.\%(RecursiveDir)%(FileName)</DependentUpon>
</None>
<None Include=".\**\*.xaml.d.ts">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DependentUpon>.\%(RecursiveDir)%(FileName)</DependentUpon>
</None>
我可以折叠 JS 但 TS 定义失败
我尝试创建一个“临时”项集合并尝试迭代和解析路径...没有成功 VS 不再加载该项目
<ToFold Include=".\**\*.xaml" />
<None Include="@(ToFold->%(RecursiveDir)%(FileName).js')" DependentUpon="@(ToFold)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
我在“另一种方式”中尝试了同样的方式......同样的方式:(
<ToFold Include=".\**\*.xaml" />
<None Include="@(ToFold->%(ToFold).js')" DependentUpon="@(ToFold)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
问题
- 是否可以用
x->%(RecursiveDir)%(FileName
以外的其他方式解析路径?
- 是否可以折叠
*.dash.ext
之类的物品?怎么样?
- 或者有人可以帮我实现这个?!
注意
xaml.ts
是自动生成的,并以某种方式自动折叠
我认为问题在于:
对于KYCHome.xaml.d.ts
文件,%(FileName)
的值为KYCHome.xaml.d
而不是KYCHome.xaml
。所以当你使用它时,它不会找到KYCHome.xaml
文件。
所以我能想到的方法就是截取FileName
,去掉.d
,然后改成的值就是我们需要的
解决方案
这是我用的:
<ItemGroup>
<None Include=".\**\*.xaml.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DependentUpon>%(RecursiveDir)%(FileName)</DependentUpon>
</None>
<None Include=".\**\*.xaml.d.ts">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<File>$([System.String]::Copy('%(Filename)').Replace('.d', ''))</File>
<DependentUpon>%(RecursiveDir)%(File)</DependentUpon>
</None>
</ItemGroup>
注意:您应该删除DependentUpon
节点下的.\
。 否则,有时,当您重新启动项目或卸载项目时,DependentUpon
将不起作用。
我首先是法国人,我认为这是实现我想做的事情的障碍。我说的是 折叠物品 但如果我说的是 嵌套物品 我会很快从 google.[=15= 得到答案]
Visual Studio 具有嵌套项目功能
我从这里 Path segment pattern 得到了答案,这是我在 .filenesting.json
解决方案文件中添加的节点
"dependentFileProviders": {
"add": {
"addedExtension": {},
"pathSegment": {},
"fileSuffixToExtension": {
"add": {
".xaml.d.ts": [".xaml"]
}
}
}
}
我正在尝试折叠所有 XAML 家属文件。
<None Include=".\**\*.xaml.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DependentUpon>.\%(RecursiveDir)%(FileName)</DependentUpon>
</None>
<None Include=".\**\*.xaml.d.ts">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DependentUpon>.\%(RecursiveDir)%(FileName)</DependentUpon>
</None>
我可以折叠 JS 但 TS 定义失败
我尝试创建一个“临时”项集合并尝试迭代和解析路径...没有成功 VS 不再加载该项目
<ToFold Include=".\**\*.xaml" />
<None Include="@(ToFold->%(RecursiveDir)%(FileName).js')" DependentUpon="@(ToFold)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
我在“另一种方式”中尝试了同样的方式......同样的方式:(
<ToFold Include=".\**\*.xaml" />
<None Include="@(ToFold->%(ToFold).js')" DependentUpon="@(ToFold)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
问题
- 是否可以用
x->%(RecursiveDir)%(FileName
以外的其他方式解析路径? - 是否可以折叠
*.dash.ext
之类的物品?怎么样? - 或者有人可以帮我实现这个?!
注意
xaml.ts
是自动生成的,并以某种方式自动折叠
我认为问题在于:
对于KYCHome.xaml.d.ts
文件,%(FileName)
的值为KYCHome.xaml.d
而不是KYCHome.xaml
。所以当你使用它时,它不会找到KYCHome.xaml
文件。
所以我能想到的方法就是截取FileName
,去掉.d
,然后改成的值就是我们需要的
解决方案
这是我用的:
<ItemGroup>
<None Include=".\**\*.xaml.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DependentUpon>%(RecursiveDir)%(FileName)</DependentUpon>
</None>
<None Include=".\**\*.xaml.d.ts">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<File>$([System.String]::Copy('%(Filename)').Replace('.d', ''))</File>
<DependentUpon>%(RecursiveDir)%(File)</DependentUpon>
</None>
</ItemGroup>
注意:您应该删除DependentUpon
节点下的.\
。 否则,有时,当您重新启动项目或卸载项目时,DependentUpon
将不起作用。
我首先是法国人,我认为这是实现我想做的事情的障碍。我说的是 折叠物品 但如果我说的是 嵌套物品 我会很快从 google.[=15= 得到答案]
Visual Studio 具有嵌套项目功能
我从这里 Path segment pattern 得到了答案,这是我在 .filenesting.json
解决方案文件中添加的节点
"dependentFileProviders": {
"add": {
"addedExtension": {},
"pathSegment": {},
"fileSuffixToExtension": {
"add": {
".xaml.d.ts": [".xaml"]
}
}
}
}