【移动应用开发技术】揭秘生成配置_第1页
【移动应用开发技术】揭秘生成配置_第2页
【移动应用开发技术】揭秘生成配置_第3页
【移动应用开发技术】揭秘生成配置_第4页
【移动应用开发技术】揭秘生成配置_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】揭秘生成配置

我相信每个人都熟悉使用大多数解决方案模板中的Debug和Release配置。

以Debug模式构建项目时使用Debug配置,使用Release模式构建项目时使用Release配置,这一点似乎很明显。然而,可能不太清楚的是切换配置时实际发生了什么,或者如何添加自己的自定义配置。今天,我们将深入了解构建配置的世界,看看它们如何能大大提高您的构建时间和生产率。

什么是配置?

简单地说,配置是一组项目属性。在默认的Debug配置中,例如,

debugging会启用,在Release配置中不会启用Debug。您可以设置在每个配置中使用的链接器选项,要构建什么架构(CPU),等等。您还可以进一步定义平台,以便根据是否为设备或仿真器构建,可以有单独的项目设置。换言之,你也可以在你的项目中,通过配置|平台来进行每一个项目的设置。

如何编辑配置?

如何编辑和添加一个配置,我们将从一个模板Android项目开始:

在VSforMac中创建一个新的“AndroidApp”:NewProject>Android>App>AndroidApp.在VSforWindows创建一个“Single-ViewApp(Android)”:创建newproject…>Android>Single-ViewApp(Android).

该模板创建了一个简单的Android应用程序,其中有一个点击计数的按钮。它有两个配置默认设置,Debug和Release,和一个平台,AnyCPU。这些只是没有任何内在含义的名字,除了考虑使用配置时。随后我们将增加两个新配置,名字叫DebugDevice

和DebugEmulator。这将使我们能够在调试到设备(ARM)或仿真器(x86)时快速设置所需的项目选项/属性。

每个只为设备或仿真器所需的架构构建,减少开发期间的构建时间。

首先,让我们看看两个默认Debug和Release配置之间有什么不同。为此,右键单击“解决方案资源管理器”中的项目并选择“选项”(VS

forMac)或“属性”(VSfor

Windows),打开项目属性。一旦项目选项/属性打开,您将在下拉列表中看到配置和平台字段,选择要查看属性设置的配置和平台。

下拉可能不存在(VSforMac)或禁用(VSfor

Windows),这意味着您选择的设置页面上的设置是全局的,即它们将应用于所有配置和平台。你能够在构建>全局设置而查看(VSfor

Mac)或者在应用设置页查看(VSforWindows)。

默认Debug和Release配置的项目设置中的大部分差异在上面所示的Android构建/

Android选项设置页面中。打开项目选项/属性,在左侧选择Android构建(VSforMac)/Android选项(VSfor

Windows)。确保在配置下拉的顶部选择Debug。注意在VSforMac中选择了“UseSharedMono

Runtime”或者在VSforWindows中选择了“Use

SharedRuntime”,以及“Fast

Assembly

Deployment”(VSforMac)/“UseFastDeployment”(VSfor

Windows)选项。

这些都是调试时的好选择,因为它们在开发应用程序时会减少构建和部署时间,但是他们根本不擅长构建一个Release版本,因为终端用户不太可能在他们的Android设备上安装一个共享的单运行时,所以应用程序根本就不能运行,因为根本就没有运行时。对于Release

构建你要禁用这个选项。如果现在在配置中选择Release版,在顶部下拉,您将看到默认Release版本配置禁用了这些选项。

您可以检查各个配置的链接器行为:

在VSforMac:在Android构建页面中选择“Linker”选项卡。你将看到在Debug配置中“Linking

Behaviour”设置为“Don’tLink”面在Release配置中设置为“LinkSDKassembliesonly”。在VSforWindows:在Android选项页面中滚动到“LinkerProperties”

一节。你将看到在Debug配置中“Linking”选项被设置为“None”而在Release配置中设置为“SDKassemblies

only”。

这些默认选项允许在调试期间更快地生成,并为您的版本构建提供更小的应用程序包。在高级选项卡(Mac)/按钮(Windows)允许你设置当你构建Debug或Release时使用哪种CPUs(ABIs)。请注意,默认情况下Debug配置允许为所有可能的CPUs构建。您构建的每一个CPU都需要时间,因此,精简这一点可能很好,所以我们只为CPU构建,我们将运行应用程序。如果我们只测试x86仿真器,然后我们只能建立x86和取消选择其他不需要的Abis。继续取消选择所有但x86使用高级选项/按钮。

祝贺你,您现在刚刚编辑了一个配置。编辑配置就像打开项目选项/属性一样简单,选择要更改设置的配置,并更改这些设置。

如何添加配置?

如果调试过程中只需选择一个配置,就可以轻松地选择在哪一个体系结构上构建,这不是很好吗?如果调试设备我选择一个配置,DebugDevice,如果是为模拟器构建,我选择DebugEmulator。让我们把那个设置好。

VisualStudioforMac:

在VisualStudioforMac中添加一个配置:

在解决方案浏览器中双击解决方案来打开解决方案选项。

选择左侧的Build>Configurationsontheleft(不是Run>Configurations).

因为我们需要Debug配置的变体,在“配置”列表中选择Debug并单击“Copy”。这将拷贝当前的Debug设置到你的新配置中。

输入这个配置的名字,比如DebugDevice。

平台保持默认的AnyCPU选项。

点击“OK”。

在DebugEmulator配置中重复4-8步。

VisualStudio(Windows):

在VisualStudio(Windows)中添加一个配置:

通过Build>ConfigurationManager菜单中,打开配置管理器。

点击ActiveSolutionConfiguration下拉框并选择“New”。

在名字字段输入DebugDevice。

在“Copysettingsfrom”下拉列表选择Debug。

确保选中了“Createnewprojectconfigurations”选项。

点击OK。

2–6

在名字字段使用ebugEmulator,并重复2–6步。

现在,在列表中你将看到四个配置项,Debug,DebugDevice,DebugEmulator,以及Release。

现在,您只需打开Android项目选项并对这两个新配置进行所需的更改:

打开

Android项目选项。

选择AndroidBuild(Mac)/AndroidOptions(Windows)>Advanced选项卡。

从配置下拉列表选择DebugDevice.

除了armeabi-v7a之外支持ABIs都取消选择。

从配置下拉列表选择DebugEmulator.

除了x86之外所有支持的ABIs都取消选择。

你可以现在无论何时你想调试使用实际的Android设备的选择DebugDevice,你可以当你想调试一个x86模拟器选择DebugEmulator。您的调试构建会更快,因为您只为所需的体系结构构建。

祝贺您,现在已经添加了两个配置,并为特定调试场景设置它们。

如何添加平台?

我们所做的工作是可行的,但是在设备或仿真器的构建之间定义平台而不是配置可能更好。您会注意到这是默认的IOS项目。有iOS项目定义两个平台,iPhone

和iPhoneSimulator。如果我们喜欢,我们也可以这样做。对于这个练习,开始一个新的Xamarin形式工程,PCL或共享型不该锻炼。

VisualStudioforMac:

在Xamarin/VisualStudioforMac添加一个平台:

在解决方案浏览器中通过双击解决方案打开解决方案选项。

在左侧选择Build>Configurations

(不是Run>Configurations)。

选择General选项卡。

因为我们想要Debug配置的变体,在配置列表选择Debug并点击“Copy”.。这将拷贝当前的Debug设置到你的新配置中:

输入配置名字,在这个选项中保存和Debug相同的配置,因为我们只想添加一个平台而不是一个配置。

在平台字段输入名字AndroidDevice.

确保“CreateConfigurationsforallsolutionitems”选项没被选中。我们只需要这个平台的Android项目。如果选择了这个选项,我们也会将这个平台添加到iOS项目中。

点击“OK”。

在名为AndroidEmulator的平台中重复步骤4-8.

因为我们没有向项目添加这个新平台(步骤7),我们需要在Android项目中重复步骤4-8,Options>Build

>Configurations。为AndroidDevice

和ndroidEmulator平台都这样做。

然后,您必须将解决方案定制平台映射到项目自定义平台:

打开SolutionOptions>Build>Configurations>ConfigurationMappings选项卡。

在最顶层的平台字段选择选择AndroidDevice平台.

在Android应用项目的配置列,选择Debug|AndroidDevice。

在顶端的平台字段选择AndroidEmulator平台。

在Android应用项目的配置列,选择Debug|AndroidEmulator.

现在,在主配置下拉列表,你将看到Debug|AndroidDeviceandDebug|AndroidEmulator。.

您可以为每一个平台编辑设置,就像之前设置的配置一样,只要选择要编辑平台中的构建设置的正确平台就可以了。在ProjectOptions>AndroidBuild(Mac)设置页。

VisualStudio(Windows):

添加自定义平台不直接在VisualStudio是XamarinStudio。你可以在解决方案级别添加自定义平台的名称,但它添加在项目层面需要一些编辑的.csproj文件。以下是如何在VisualStudio中实现所有这些:

添加解决方案级平台:

通过Build>ConfigurationManager菜单打开ConfigurationManager。

点击ActiveSolutionPlatform下拉列表并选择“New”.

在名字字段输入AndroidDevice.

在“Copysettingsfrom”下拉列表选择AnyCPU。

确保没有选中“Createnewprojectconfigurations”选项。在Android应用项目没有选择一个AndroidDevice平台时,如果选中它,你将会得到一个错误。

点击OK。

在名字字段使用Androidmulator,重复步骤2–6。

现在最困难的部分是在Android应用程序项目中添加新的平台。

卸载Android应用项目(右击项目并选择卸载)。

编辑AppName.csproj文件(右键点击项目并选择“编辑.csproj”)。

在打开的项目标记下面粘贴下列XML:

点击(此处)折叠或打开

<PropertyGroupCondition="'$(Platform)'=='AndroidDevice'">

<DefineConstants>AndroidDevice</DefineConstants>

<PlatformTarget>AnyCPU</PlatformTarget>

</PropertyGroup>

<PropertyGroupCondition="'$(Platform)'=='AndroidEmulator'">

<DefineConstants>AndroidEmulator</DefineConstants>

<PlatformTarget>AnyCPU</PlatformTarget>

</PropertyGroup>

寻找以下元素:

点击(此处)折叠或打开

<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

选择文本的所有上述PropertyGroup包括开幕式和闭幕PropertyGroup标签并将它复制。

粘贴文本两次右下方的propertygroup标签上面复制的结局。

编辑已粘贴的属性组,更改:

点击(此处)折叠或打开

点击(此处)折叠或打开

上面是针对第一处拷贝的修改,下面是对第二处拷贝的修改

点击(此处)折叠或打开

<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|AndroidEmulator'">

<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|AndroidDevice'">

<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

不需要,但最好为每个平台单独outputpath,因此改变:

点击(此处)折叠或打开

点击(此处)折叠或打开

这是针对第一处拷贝的修改。

点击(此处)折叠或打开

这是对第二处拷贝的修改。

<OutputPath>bin\AndroidEmulator\Debug</OutputPath>

<OutputPath>bin\AndroidDevice\Debug</OutputPath>

<OutputPath>bin\Debug</OutputPath>

然后,您必须将解决方案定制平台映射到项目自定义平台:

再次打开ConfigurationManager。

为活动解决方案平台选择AndroidDevice.

Android应用项目的平台列,选择AndroidDevice。

为活动解决方案平台选择AndroidEmulator.

在Android应用项目的平台列选择AndroidEmulator。

现在你将要开放的Android项目属性和编辑配置|平台设置,只有建立相关的体系结构,比如AndroidDevice的armeabi-v7s和AndroidEmulator的x86,就像你简易的创建一个新配置。

配置Mapping

当我们添加上面的配置时,我匀将它添加到解决方案级别,通过在Mac选择“CreateConfigurationsforall

solutionitems”和在Windows选择“Create

newprojectconfigurations”将他们添加到每一个项目中(或者手动添加它们到.csproj

文件)。这样,新配置在项目和解决方案级别上都是可用的。通过在Windows中使用Configuration

Manager或者在Mac中使用SolutionOptions>Build>Configurations>

ConfigurationMappings选项卡将映射解决方案级别配置到项目级别配置中。

您将看到,对于每个项目,您可以选择在配置下拉列表中选择活动解决方案配置时将构建哪个项目配置。

还可以设置每个解决方案配置生成的项目。如果您有一个多个应用程序项目的解决方案,您可以添加一个配置,只用于构建当时需要的项目。

对于XamarinForms应用(或者对于包含多个平台的某些解决方案),您可能需要添加只构建IOS项目的配置(如果使用了PCL项目),一个只构建Android项目(如果使用了PCL项目)。这将再次加快构建时间,因此您只为正在调试的平台构建。

在.csproj文件中配置和MSBuild属性

我们简单地接触的.csproj文件自UI没有提供这样的办法在XamarinStudio在Visual

Studio应用程序项目中添加自定义平台时。主要是你会不会编辑.csproj文件但我觉得它是有用的至少接触的项目.csproj文件受影响的当你切换活动配置|平台IDE。

当我们添加一个自定义平台之上,我们两次拷贝和粘贴一个PropertyGroup添加到新平台并且设置新平台的构建输出路径。所使用的每个配置的属性组是一套简单的MSBuild属性和值时将使用相应的配置|平台组合选择建立。例如,下面的属性组时将使用的Debug|AnyCPU

时选中Configuration|Platform:

点击(此处)折叠或打开

<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

...

</PropertyGroup>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论