Visual studio 2010 Mono-fo Android-一个适用于多个客户端的解决方案

Visual studio 2010 Mono-fo Android-一个适用于多个客户端的解决方案,visual-studio-2010,xamarin.android,Visual Studio 2010,Xamarin.android,我为三个不同的客户端创建了三个不同的解决方案,但这些解决方案针对的应用程序具有相同的功能、类、方法、分辨率,但图像、XML资源文件和web服务引用除外,这些都是针对每个客户端的 我希望所有这些应用程序只有一个解决方案,我可以在VS2010 IDE中打开它进行编辑,不会出现错误。所以,当我需要构建或发布一个特定的应用程序时,我只需设置我需要的客户端,然后继续构建或发布 P>重要的是要考虑XML文件名将与类和图像名称相同。不同之处在于内容,但名称始终相同 我的目的是减少维护多个解决方案的工作量,只

我为三个不同的客户端创建了三个不同的解决方案,但这些解决方案针对的应用程序具有相同的功能、类、方法、分辨率,但图像、XML资源文件和web服务引用除外,这些都是针对每个客户端的

我希望所有这些应用程序只有一个解决方案,我可以在VS2010 IDE中打开它进行编辑,不会出现错误。所以,当我需要构建或发布一个特定的应用程序时,我只需设置我需要的客户端,然后继续构建或发布

<> P>重要的是要考虑XML文件名将与类和图像名称相同。不同之处在于内容,但名称始终相同

我的目的是减少维护多个解决方案的工作量,只使用一个解决方案

在我的公司,我们很快就会有超过这三个客户,所以我担心如何保持这一点。最好的方法是只有一个解决方案,当我需要为新客户端生成新应用程序时,我只需更改/包括一些内容(如一些资源和图像)并编译到新客户端文件夹


可能吗?如果是,怎么做

一种选择是有一个主解决方案,它具有以下内容

  • 包含实际应用程序和所有共享代码的“模板”项目
  • 所有客户的项目
在客户端的项目中,可以有指向文件中来自共享项目的文件的链接。然后,在每个项目中,您可以添加仅特定于它们的文件

使用这种结构,每当您对模板项目进行更改时,所有客户机项目都会更新,因为它们只有指向模板项目的指针

这种设置的一个很好的参考是。在那里,他有一个针对所有不同配置的解决方案和项目,但它们都共享相同的文件


在确保xml文件正确命名方面,您可能只想在主应用程序中进行一些检查,以确保它具有所需的所有文件,或者可能会在构建过程中添加一个检查。

有许多方法可以解决这一问题

我最喜欢的是运行某种预构建步骤——可能在Visual Studio之外——在您进行构建之前,它只是用正确的文件替换文件。这将很容易实现自动化和扩展

如果您要为三个以上的客户进行构建,那么我认为您应该考虑从Visual Studio building切换到其他一些自动构建系统,例如从命令行或TeamCity或CruiseControl之类的工具进行MSBuild。如果您的构建是自动化的(并且是健壮的),那么您将发现它更易于扩展


如果您不喜欢文件的想法,那么您可以尝试很多其他方法:

  • 您可以尝试执行与上面类似的步骤,但可以在VS内部使用预构建步骤来执行
  • 可以使用.csproj文件中的条件节点通过项目配置切换文件
  • 您可以将特定于客户端的资源转移到另一个程序集中,然后在运行时使用GetResourceStream(或类似工具)提取资源

但是这些对我来说都没有这么好

您好,您的想法很好,但如果需要进行任何更改,我需要能够使用VS 2010 IDE。我已经尝试使用MSBuild,但有必要在.csproj内部进行一些更改,因为它不起作用。Android版Mono的一些特性使它不同于其他项目。它在一些文件夹中有一些必要的文件,如AndroidManifest.xml。嗨,Mike,我如何创建这个共享项目?是否可以使用Mono for Android项目?