【发布时间】:2019-05-29 11:18:08
【问题描述】:
我有一个针对 iOS 和 Android 的 Xamarin 项目。我主要使用 Visual Studio 在 Windows 上进行开发。该项目由 git 控制。
最近,我使用 Mac 构建和部署 iOS 应用程序,为此,我在 Resources/Media.xcassets 下添加了图标集(应用程序图标和启动屏幕)。在将这些更改提交到 git 并将它们拉到 Windows 机器上后,打开 Visual Studio 后,Resources/Media.xcassets 条目不会显示在解决方案资源管理器中。
这本身不是问题 - 但是 csproj 文件被 VS 修改如下(所以基本上图像资产被标记为不可见):
<ItemGroup>
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Contents.json" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-20x20@1x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-20x20@2x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-20x20@3x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-29x29@1x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-29x29@2x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-29x29@3x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-40x40@1x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-40x40@2x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-40x40@3x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-60x60@2x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-60x60@3x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-76x76@1x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-76x76@2x.png" />
- <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-83.5x83.5@2x.png" />
- <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Contents.json" />
- <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default.png" />
- <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default%402x.png" />
- <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default-568h%402x.png" />
- <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default-Portrait.png" />
- <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default-Portrait%402x.png" />
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Contents.json">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-20x20@1x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-20x20@2x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-20x20@3x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-29x29@1x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-29x29@2x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-29x29@3x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-40x40@1x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-40x40@2x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-40x40@3x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-60x60@2x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-60x60@3x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-76x76@1x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-76x76@2x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\AppIcon.appiconset\Icon-App-83.5x83.5@2x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Contents.json">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default%402x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default-568h%402x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default-Portrait.png">
+ <Visible>false</Visible>
+ </ImageAsset>
+ <ImageAsset Include="Resources\Media.xcassets\LaunchImage.launchimage\Default-Portrait%402x.png">
+ <Visible>false</Visible>
+ </ImageAsset>
</ItemGroup>
我尝试关闭 VS,将这些更改恢复到项目文件并再次打开 VS。 VS 加载项目后,会再次像上面一样修改csproj 文件。
我不知道发生了什么,也不知道如何避免这种情况。我不需要在 Windows 下查看资源文件,但是,我不想在版本控制下提交这样的更改,因为我猜这也会使资产在我的 Mac 上消失......
那我该如何避免呢?
我正在使用 Visual Studio Community 2017,这是一个 Xamarin Forms 2 项目(以防万一)。
【问题讨论】:
-
你找到答案了吗?
-
我遇到了同样的问题,但是 iOS 项目资源文件夹无论如何都没有显示 VS for Mac 中的图标。我猜 VS for Mac 默认会忽略它们,但 VS for Windows 需要明确忽略它们。 ¯_(ツ)_/¯。在任何情况下,它都不应该影响您的构建或应用图标本身。
标签: visual-studio xamarin assets