我有一个针对iOS和Android的Xamarin项目。我主要在Windows上使用Visual Studio开发。该项目由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项目(以防万一)。
答案 0 :(得分:0)
您找到解决此问题的方法了吗?
当前,当在Visual Studio for Windows中打开项目时,当前命中<imageasset />
的人与<visible>false</visible>
相同。
您可以用空字符串大量替换<Visible>false</Visible>
,之后资源将出现在VS for Windows中..但是重新加载项目时csproj会再次被修改
(至少现在我可以在将bac切换到vs for mac时“恢复”文件)
答案 1 :(得分:0)
Xamarin Forms版本或您的VS Community版本似乎都是一个错误,我想说是升级到最新版本(或移至VS Community '19)并重建您的项目