CommunityToolkit / CommunityToolkit/Tooling-Windows-Submodule
Samples can't have the same asset file names across components
- 主要言語
- C#
- スター
- 55
- フォーク
- 19
- 平均マージ
- 40分
- マージ済み PR(30日)
- 1
説明
### Describe the bug
_[originally discovered here](https://github.com/CommunityToolkit/Labs-Windows/pull/354#issuecomment-1487539780)_
```
"D:\a\Labs-Windows\Labs-Windows\CommunityToolkit.AllComponents.sln" (default target) (1:2) ->
"D:\a\Labs-Windows\Labs-Windows\tooling\ProjectHeads\AllComponents\Tests.WinAppSdk\CommunityToolkit.Tests.WinAppSdk.csproj" (default target) (27:6) ->
(_HandleFileConflictsForPublish target) ->
C:\Program Files\dotnet\sdk\6.0.407\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ConflictResolution.targets(112,5): error NETSDK1152: Found multiple publish output files with the same relative path: D:\a\Labs-Windows\Labs-Windows\components\Shimmer\samples\Assets\Owl.jpg, D:\a\Labs-Windows\Labs-Windows\components\TransitionHelper\samples\Assets\Owl.jpg. [D:\a\Labs-Windows\Labs-Windows\tooling\ProjectHeads\AllComponents\Tests.WinAppSdk\CommunityToolkit.Tests.WinAppSdk.csproj]
"D:\a\Labs-Windows\Labs-Windows\CommunityToolkit.AllComponents.sln" (default target) (1:2) ->
"D:\a\Labs-Windows\Labs-Windows\tooling\ProjectHeads\AllComponents\WinAppSdk\CommunityToolkit.App.WinAppSdk.csproj" (default target) (29:6) ->
C:\Program Files\dotnet\sdk\6.0.407\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ConflictResolution.targets(112,5): error NETSDK1152: Found multiple publish output files with the same relative path: D:\a\Labs-Windows\Labs-Windows\components\Shimmer\samples\Assets\Owl.jpg, D:\a\Labs-Windows\Labs-Windows\components\TransitionHelper\samples\Assets\Owl.jpg. [D:\a\Labs-Windows\Labs-Windows\tooling\ProjectHeads\AllComponents\WinAppSdk\CommunityToolkit.App.WinAppSdk.csproj]
```
In this case we had two components **Shimmer** and **TransitionHelper** which had a `samples\Assets\Owl.jpg` file. When the build went to include both these components it got confused.
----
We need to better identify this issue locally with an analyzer to alert a dev as an error during development (duplicate file name across repo) [easier?] or figure out how to merge resources into a cohesive collection which can still work for all the code relying on those images [hard?].
### Steps to reproduce
```text
Create two components
Setup an image with the same name in both sample directories and include in project
Try and build the all-up solution
```
### Expected behavior
Able to _either_:
- identify duplicates across components and alert developer
- use assets with the same name
### Screenshots
_No response_
### Code Platform
- [ ] UWP
- [ ] WinAppSDK / WinUI 3
- [ ] Web Assembly (WASM)
- [ ] Android
- [ ] iOS
- [ ] MacOS
- [ ] Linux / GTK
### Windows Build Number
- [ ] Windows 10 1809 (Build 17763)
- [ ] Windows 10 1903 (Build 18362)
- [ ] Windows 10 1909 (Build 18363)
- [ ] Windows 10 2004 (Build 19041)
- [ ] Windows 10 20H2 (Build 19042)
- [ ] Windows 10 21H1 (Build 19043)
- [ ] Windows 11 21H2 (Build 22000)
- [ ] Other (specify)
### Other Windows Build number
_No response_
### App minimum and target SDK version
- [ ] Windows 10, version 1809 (Build 17763)
- [ ] Windows 10, version 1903 (Build 18362)
- [ ] Windows 10, version 1909 (Build 18363)
- [ ] Windows 10, version 2004 (Build 19041)
- [ ] Other (specify)
### Other SDK version
_No response_
### Visual Studio Version
_No response_
### Visual Studio Build Number
_No response_
### Device form factor
_No response_
### Additional context
Maybe we should also think about some centralized assets that all samples have access to in case they just need an image or two to include?
### Help us help you
Yes, but only if others can assist.
コントリビューションガイド
調査の方向性
まず、CommunityToolkit.AllComponents.sln のビルド時に発生する NETSDK1152 エラーを再現します。AllComponents Tests.WinAppSdk および WinAppSdk のプロジェクト ファイルと、Shimmer および TransitionHelper にある重複した samples/Assets/Owl.jpg パスに焦点を当ててください。重複するアセット名を検出するべきか、all-up ビルド中にそれらをサポートするべきかを判断します。選択した動作が実装され、all-up ソリューションがこれらの重複によって失敗しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- csharp
- 領域
- build-system, tooling
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100