给定一个包含共享项目的Xamarin Studio解决方案,以及一个引用共享项目的iOS项目。使用xbuild构建解决方案时:
xbuild /p:Configuration=Release /p:Platform="iPhone" /target:Build GridVisibilityBug.sln
构建包含几个警告,如下所示:
/Users/work/.../GridVisibilityBug/GridVisibilityBug.shproj: warning : Could not find project file /Library/Frameworks/Mono.framework/External/xbuild/Microsoft/VisualStudio/v/CodeSharing/Microsoft.CodeSharing.Common.Default.props, to import. Ignoring.
/Users/work/.../GridVisibilityBug/GridVisibilityBug.shproj: warning : Could not find project file /Library/Frameworks/Mono.framework/External/xbuild/Microsoft/VisualStudio/v/CodeSharing/Microsoft.CodeSharing.Common.props, to import. Ignoring.
/Users/work/.../GridVisibilityBug/GridVisibilityBug.shproj: warning : Could not find project file /Library/Frameworks/Mono.framework/External/xbuild/Microsoft/VisualStudio/v/CodeSharing/Microsoft.CodeSharing.CSharp.targets, to import. Ignoring.
当只构建csproj时,我没有得到警告(但是只是构建csproj是不可取的,因为该解决方案包含其他项目):
xbuild /p:Configuration=Release /p:Platform="iPhone" /target:Build iOS/GridVisibilityBug.iOS.csproj
使用已弃用的mdtool构建时,我也没有收到警告:
/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool -v build "--configuration:Release|iPhone" GridVisibilityBug.sln
我该如何评价此警告?它是无害的,还是有严重缺失的东西?我可以修复警告(引用的文件确实不在指定的位置)吗?
由于项目的发布时间较长,我使用的是较旧的Xamarin版本:
Xamarin Studio
Version 5.10.2 (build 56)
Installation UUID: 09335063-06f8-425b-8e56-2cdecfb3c10c
Runtime:
Mono 4.2.2 (explicit/996df3c)
GTK+ 2.24.23 (Raleigh theme)
Apple Developer Tools
Xcode 7.3.1 (10188.1)
Build 7D1014
Xamarin.iOS
Version: 9.4.1.25 (Business Edition)
Hash: 962a050
Branch: master
Build date: 2016-01-29 16:59:11-0500
Operating System
Mac OS X 10.11.6
Darwin Stephans-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0
Mon Aug 29 20:21:34 PDT 2016
root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64
修改
最初的例子现在应该更清楚了。我使用的示例项目是附加到https://bugzilla.xamarin.com/show_bug.cgi?id=46501的项目。它是使用上面提到的Xamarion Studio / Xamarin iOS版本创建的。
我还能够使用更新的Xamarin版本在系统上重现问题。工作流程:通过File->New->Solution->Xamarin.Forms App
创建新解决方案,仅选择共享项目和iOS。然后使用上面提到的xbuild命令构建解决方案。此系统上的版本:Xamarin Studio 6.1.1, Mono 4.6.1, Xamarin iOS 10.0.1.8, Mac OS X 10.11.6
。
编辑2:
shproj xml确实导入了警告中提到的文件,并且我们的系统上没有这些文件。至少不在预期的位置。构建本身虽然有效。我的主要问题是如果可以安全地忽略这些警告。