簡體   English   中英

如何從 Xamarin Forms iOS 資產目錄中刪除“未知”圖像

[英]How to removed "Unknown" images from Xamarin Forms iOS Asset Catalog

在為 Xamarin Forms iOS 應用程序更新資產目錄中的圖像時,有時我有時會在圖像集中顯示額外的圖像,有時會在圖像集中顯示正確的圖像,有時當@2x 等未分配給我嘗試將我的圖像更改合並到我的項目版本之間。 我無法清除這些圖像,並且當您在資產目錄中右鍵單擊這些圖像時,沒有選項可以取消分配。 即使通過 Visual Studio IDE 從資產目錄中刪除圖像集似乎也無法正常工作,因為我開始收到一些編譯時錯誤,即在 Assets.xcasstes 文件夾中找不到圖像文件。 任何想法如何正確合並/處理這種情況? 我不希望手動重新更新我項目的第二個版本(即分支)中的圖像。

所以使用下面的步驟,我能夠清理東西,但這是一個非常手動的過程。 仍在尋找一種在分支之間合並 iOS 圖像的好方法。 以下步驟適用於 PC 上的 VS 2019。

僅供參考 - 如果您的項目是版本控制的,我建議在每次更改后執行檢查。

  1. Go 進入包含“未知”圖像的圖像集中,並取消設置任何實際設置的圖像。 (您可以通過右鍵單擊圖像並從彈出菜單中選擇取消設置來執行此操作。)完成后保存項目/資產。
  2. 取消設置所有圖像后,您只能看到圖像集中的“未知”圖像,select 左側窗格中的圖像集名稱,然后單擊資產管理器 window 左上方區域附近的刪除按鈕。 再次保存項目。
  3. 單擊解決方案資源管理器中的 iOS 項目和 select 解決方案資源管理器 window 頂部工具欄中的“顯示所有文件”選項。 您現在應該在 iOS 項目下看到一個名為 Assets.xcassets 的文件夾。
  4. 展開 Assets.xcassets 文件夾並確保您沒有看到您刪除的圖像集的文件夾。 例如,如果您刪除名為“help”的圖像集,請確保在 Assets.xcassets 文件夾下看不到名為 help.imageset 的文件夾。 如果您確實看到剛剛刪除的圖像集的文件夾,您可能需要手動將 go 放入文件資源管理器並從磁盤驅動器中刪除該文件夾。
  5. 一旦圖像集的文件夾不再存在於 Assets.xcassets 文件夾中,我強烈建議您清理整個項目。
  6. 接下來從彈出菜單中右鍵單擊 iOS 項目和 select '卸載項目'。
  7. 卸載項目后,XXX.iOS.csproj 文件(其中 XXX 是項目的名稱)應在 Visual Studio 編輯器中自動打開。 您現在需要在此 csproj 文件中搜索您刪除的映像集名稱的所有實例,並刪除您找到的所有 XML 條目。 例如,如果我刪除了“配置”圖像集,並且在我的 csproj 文件中找到了以下條目,我將刪除所有 XML 條目。 注意:我無法在此處實際顯示 XML,因此我將其放在單獨的答案中,以便每個人都可以看到。

重要.. - 另外 - 確保在 Assets.xcassets 下的文件夾中確保沒有 Images.imageset 文件夾,除非您實際使用名為 Images 的資產圖像集。 否則刪除此文件夾並確保在 iOS.csproj 文件中未引用該文件夾/文件。

  1. 從不再屬於資產目錄的圖像中刪除所有條目后,請保存 iOS csproj。 然后右鍵單擊解決方案中的 iOS 項目和 select '重新加載項目'。

  2. 您現在應該能夠重新編譯項目而不會出現錯誤。 記住 - 經常將您的項目簽入到您的版本控制系統,尤其是此時。

  3. 現在您可以將 go 返回到您的資產目錄並重新添加所需的圖像集。

在此之后,一切都應該正常工作。

所以由於某種原因,我無法讓我在上面發布的 XML 代碼實際顯示,所以我將嘗試將其發布在這里。

<ImageAsset Include="Assets.xcassets\config.imageset\config.png">
  <Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\config.imageset\config@2x.png">
  <Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\config.imageset\config@3x.png">
  <Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\config.imageset\Contents.json">
  <Visible>false</Visible>
</ImageAsset>

<ItemGroup>
  <ImageAsset Include="Assets.xcassets\Images.imageset\qrbuttonlight32.png">
    <Visible>false</Visible>
  </ImageAsset>
</ItemGroup>
<ItemGroup>
  <ImageAsset Include="Assets.xcassets\Images.imageset\qrbuttonlight64.png">
   <Visible>false</Visible>
  </ImageAsset>
</ItemGroup>
<ItemGroup>
  <ImageAsset Include="Assets.xcassets\Images.imageset\qrbuttonlight96.png">
   <Visible>false</Visible>
  </ImageAsset>
</ItemGroup>

您需要確保刪除完整的 XML 標記 - 在這種情況下,它將是配置圖像集中每個文件的整個 ImageAsset XML 節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM