使用自定义构建配置为

时间:2015-10-09 14:07:05

标签: android xamarin msbuild apk

让我们说我有一个名为X.Droid的Xamarin Android项目的解决方案,其中包含以下项目:

    - Core.PCL 
        build configurations: Debug, Release, XRelease
    - AndroidLibrary (references Core.PCL )
        build configurations: Debug, Release
    - X.PCL (references Core.PCL )
        build configurations: Debug, Release
    - X.Droid (references X.PCL and AndroidLibrary)
        build configurations: Debug, Release, Test, Prod

平台=' AnyCPU'如果为每个配置设置(没有空格,不是'任何CPU')

我已经设置了一个解决方案配置X.Test来进行这些项目配置:

    - XRelease for Core.PCL (Build)
    - Release for AndroidLibrary (Build)
    - Release for X.PCL (Build)
    - Test for X.Droid (Build, Deploy)

再次平台=' AnyCPU' (没有空格)

当我直接使用Visual Studio 2015或msbuild时,此配置正在构建:

    MSBuild.exe X.sln /p:Configuration=X.Test;Platform=AnyCPU 

构建X.Droid项目的输出文件夹(bin \ Test)后,只包含* .dll,* .mdb,* .pdb和* .xml文件。

现在我想要从此输出生成一个.apk文件。根据{{​​3}}目标' SignAndroidPackage' "创建并签署包(.apk)"但是当我跑步时

    MSBuild.exe X.Droid.csproj /p:Configuration=Test /t:SignAndroidPackage

我收到以下输出:

  

Project" C:... \ X.Droid.csproj"在节点1上(SignAndroidPackage   目标(一个或多个))。

     

Properties \ AndroidManifest.xml:警告XA0101:@(内容)构建   不支持动作[C:... \ X.Droid.csproj]

     

Project" C:... \ X.Droid.csproj" (1)正在建设中   " C:... \ Core.PCL.csproj" (2)在节点1上(默认目标)。

     

C:\ Program Files   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(723,5):   错误:未为项目设置OutputPath属性   ' Core.PCL.csproj&#39 ;.请检查以确保您已指定   此项目的配置和平台的有效组合。   配置='测试'平台=' AnyCPU&#39 ;.你可能会看到这个   消息,因为您正在尝试在没有解决方案的情况下构建项目   文件,并指定了非默认配置或平台   这个项目不存在。 [C:... \ Core.PCL.csproj]

     

完成建筑项目" C:... \ Core.PCL.csproj" (默认目标) -   失败。

     

Project" C:... \ X.Droid.csproj" (1)正在建设" C:... \ X.PCL.csproj"   (4)在节点1上(默认目标)。

     

C:\ Program Files   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(723,5):   错误:未为项目' X.PCL.csproj'设置OutputPath属性。   请检查以确保您指定了有效组合   该项目的配置和平台。配置='测试'   平台=' AnyCPU&#39 ;.您可能会看到此消息,因为您是   尝试在没有解决方案文件的情况下构建项目,并指定了   一个非默认的配置或平台,不存在   项目。 [C:... \ X.PCL.csproj]

     

完成建筑项目" C:... \ X.PCL.csproj" (默认目标) -   失败。

     

Project" C:... \ X.Droid.csproj" (1)正在建设中   " C:... \ AndroidLibrary.csproj" (5)在节点1上(默认目标)。

     

C:\ Program Files   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(723,5):   错误:未为项目设置OutputPath属性   ' AndroidLibrary.csproj&#39 ;.请检查以确保您拥有   为此指定了Configuration和Platform的有效组合   项目。配置='测试'平台=' AnyCPU&#39 ;.你可能会看到   这条消息是因为你试图建立一个没有的项目   解决方案文件,并指定了非默认配置或   该项目不存在的平台。   [C:... \ AndroidLibrary.csproj]

     

完成建筑项目" C:... \ AndroidLibrary.csproj" (默认目标)    - 失败。

     

完成建筑项目" C:... \ X.Droid.csproj" (SignAndroidPackage   target(s)) - FAILED。

     

构建失败。

     

" C:... \ X.Droid.csproj" (SignAndroidPackage target)(1) - >   (_CheckForContent target) - > Properties \ AndroidManifest.xml:   警告XA0101:不支持@(内容)构建操作   [C:... \ X.Droid.csproj]

     

" C:... \ X.Droid.csproj" (SignAndroidPackage target)(1) - >   " C:... \ Core.PCL.csproj" (默认目标)(2) - >   (_CheckForInvalidConfigurationAndPlatform target) - > C:\ PROGRAM   档   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(723,5):   错误:未为项目设置OutputPath属性   ' Core.PCL.csproj&#39 ;.请检查以确保您已指定   此项目的配置和平台的有效组合。   配置='测试'平台=' AnyCPU&#39 ;.你可能会看到这个   消息,因为您正在尝试在没有解决方案的情况下构建项目   文件,并指定了非默认配置或平台   这个项目不存在。 [C:... \ Core.PCL.csproj]

     

" C:... \ X.Droid.csproj" (SignAndroidPackage target)(1) - >   " C:... \ X.PCL.csproj" (默认目标)(4) - > C:\ Program Files   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(723,5):   错误:未为项目' X.PCL.csproj'设置OutputPath属性。   请检查以确保您指定了有效组合   该项目的配置和平台。配置='测试'   平台=' AnyCPU&#39 ;.您可能会看到此消息,因为您是   尝试在没有解决方案文件的情况下构建项目,并指定了   一个非默认的配置或平台,不存在   项目。 [C:... \ X.PCL.csproj]

     

" C:... \ X.Droid.csproj" (SignAndroidPackage target)(1) - >   " C:... \ AndroidLibrary.csproj" (默认目标)(5) - > C:\ PROGRAM   档   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(723,5):   错误:未为项目设置OutputPath属性   ' AndroidLibrary.csproj&#39 ;.请检查以确保您拥有   为此指定了Configuration和Platform的有效组合   项目。配置='测试'平台=' AnyCPU&#39 ;.你可能会看到   这条消息是因为你试图建立一个没有的项目   解决方案文件,并指定了非默认配置或   该项目不存在的平台。   [C:\Ú... \ AndroidLibrary.csproj]

1 Warning(s)
4 Error(s)
     

时间流逝00:00:00.83

此输出表示目标' SignAndroidPackage'实际上构建Android项目againg并尝试使用相同的构建配置构建它依赖的每个项目。在我的案例中显然无法找到。

我知道解决问题的一种方法是宣布“测试”。 X.Droid所依赖的每个项目的配置。但我想找到更好的解决方案。

我有什么方法可以制作' SignAndroidPackage'使用以前通过构建委托X.sln生成的输出?或者明确告诉它所有参与项目的配置名称?或者我可以告诉它解决方案文件,以便在那里找到它们吗?

或者我的目的还有另一个目标吗?

0 个答案:

没有答案