Visual Studio团队服务构建无法找到一个库。

4

我正在尝试使用Team Services CI Build,但它一直以相同的错误失败:

##[error]MobileClient\LoginNavigation\CommentPage.xaml.cs(1,7): Error CS0246: The type or namespace name 'Android' could not be found (are you missing a using directive or an assembly reference?)

似乎是正确的,因为在之前的步骤中它抱怨找不到那个库:
##[warning]C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): Warning MSB3245: Could not resolve this reference. Could not locate the assembly "Mono.Android". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

此外,记录了构建正在搜索的位置:
For SearchPath "{HintPathFromItem}".
Considered "..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v6.0\Mono.Android.dll", but it d  idn't exist.For SearchPath "{TargetFrameworkDirectory}".
For SearchPath "{TargetFrameworkDirectory}".
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259\Mono.Android.winmd", but  it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259\Mono.Android.dll", but it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259\Mono.Android.exe", but it didn't exist.
For SearchPath "{RawFileName}".
Considered treating "Mono.Android" as a file name, but it didn't exist.

据我理解,这个文件在Team Services构建服务器上丢失了,对吗?我该怎么解决?需要更改此目录吗?
重要的一点是,在我的本地计算机上,Visual Studio和命令行MSBuild都能正常工作。
这发生在Visual Studio Build步骤中,其配置如下:
- MSBuild配置:MSBuild x86 - Visual Studio版本:Visual Studio 2015 - MSBuild参数:/p:DeployOnBuild=true /p:WebPublishMethod=Package - /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true - /p:PackageLocation="$(build.artifactstagingdirectory)\" - Visual Studio Build Solution步骤版本:1.*
以下是Team Services构建的步骤:enter image description here

​​


你能用一个简单的项目重现这个问题吗?你可以在OneDrive上分享它。 - starian chen-MSFT
1
考虑到您似乎有一个Xamarin解决方案,我不建议使用那些发布参数。您尝试过使用Xamarin Android模板吗? - Chris Patterson
1
Mono.Android参考的路径是什么?(右键单击Mono.Android参考>属性) - starian chen-MSFT
1
你是否正在尝试构建一个Xamarin Android项目?如果是的话,在创建构建定义时,请尝试使用“Xamarin.Android”模板。 - Eddie Chen - MSFT
1个回答

1
好的,经过阅读我收到的答案和建议,我得到了解决这个问题的提示。基本上,我犯了两个错误:
首先,在失败的项目上,我将Mono.Android引用更改为项目文件夹内的引用。即使该错误消失了,我仍然遇到越来越多与Xamarin和Android相关的错误。
所以,这就是当我在这个线程中跟随另一个建议时的情况:使用Xamarin.Android模板。问题是,在这个项目中,我有一个.sln文件,其中包含不同类型的项目,包括Xamarin项目、Web Api和一些类库。我试图在同一Team Services构建定义中构建它们,但我意识到根据不同类型的项目拥有不同的定义效率更高。
因此,最终我为Xamarin项目创建了一个使用Xamarin.Android模板的构建定义,并为由Web Api项目使用的所有项目创建了一个.sln文件的另一个构建定义。错误数量大大减少,我感觉自己不再“逆流而上”。
我建议每个拥有各种项目类型的解决方案都这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接