.net net中的配置管理

.net net中的配置管理,.net,asp.net-mvc-2,configuration,configuration-management,.net,Asp.net Mvc 2,Configuration,Configuration Management,我想这是一个困难的问题(对我来说):我们需要一个.net(web)项目,它应该用于不同客户的不同配置 示例:Cusomer A需要一个编译版本,该版本包含Main应用程序的很大一部分,但排除了一些代码和两个独立的程序集。客户B希望整个Main应用程序与其他程序集(例如不同的gui)一起使用 我做了一个简单的研究,得出以下结论: 使用VisualStudio的配置管理器进行不同的“构建”,然后 使用NAnt构建项目(包括多个配置)并进行部署 排除代码或将不同的代码与complie指令一起使用

我想这是一个困难的问题(对我来说):我们需要一个.net(web)项目,它应该用于不同客户的不同配置

示例:Cusomer A需要一个编译版本,该版本包含Main应用程序的很大一部分,但排除了一些代码和两个独立的程序集。客户B希望整个Main应用程序与其他程序集(例如不同的gui)一起使用

我做了一个简单的研究,得出以下结论:

  • 使用VisualStudio的配置管理器进行不同的“构建”,然后
  • 使用NAnt构建项目(包括多个配置)并进行部署
  • 排除代码或将不同的代码与complie指令一起使用
我们以前从未这样做过,所以我有一些问题:

  • 可以用编译指令来解决这个问题吗?(我可以想象这一点会变得非常复杂)
  • 是否有更好的方法适合此项目(使用.net)

  • 谢谢

    为什么不创建不同的解决方案呢?它们将共享一些程序集,并拥有一些解决方案特有的程序集


    您可以在TFS中为这些解决方案中的每一个配置多个服务器构建,因此在提交到一个源代码管理的同时,很容易获得任何配置的构建。您使用的任何其他构建系统也是如此。

    为什么不创建不同的解决方案呢?它们将共享一些程序集,并拥有一些解决方案特有的程序集


    您可以在TFS中为这些解决方案中的每一个配置多个服务器构建,因此在提交到一个源代码管理的同时,很容易获得任何配置的构建。您使用的任何其他构建系统也是如此。

    我建议构建一个插件系统/体系结构-可以根据配置条目根据需要动态加载程序集。不过,您可能需要编写一个单独的工具来打包部署(即在bin文件夹中包含不同的程序集)。

    我建议构建一个插件系统/体系结构-可以根据配置条目按需动态加载程序集。不过,您可能需要编写一个单独的工具来打包以进行部署(即在bin文件夹中包含不同的程序集)。

    好方法。我可以使用编译指令共享一些代码并排除一些代码吗?我还可以想象,切换到另一个解决方案可能会很慢。@elCapitano:可以,但如果代码太多,我的建议是以某种方式将其重构为不同的程序集,这样就很简单,只需在解决方案中包括/不包括它们。否则会变得一团糟真的真的fast@elCapitano:切换到其他解决方案是什么意思?我的目标是从不同的解决方案(使用不同的代码,共享大量代码)切换到一个高配置的解决方案,可插入的解决方案使用不同的解决方案时,当您在多个解决方案之间共享代码时,代码更改可能不会在其他项目中编译。这是一个好方法。我可以使用编译指令共享一些代码并排除一些代码吗?我还可以想象,切换到另一个解决方案可能会很慢。@elCapitano:可以,但如果代码太多,我的建议是以某种方式将其重构为不同的程序集,这样就很简单,只需在解决方案中包括/不包括它们。否则会变得一团糟真的真的fast@elCapitano:切换到其他解决方案是什么意思?我的目标是从不同的解决方案(使用不同的代码,共享大量代码)切换到一个高配置的解决方案,可插入的解决方案使用不同的解决方案时,当您在多个解决方案之间共享代码时,代码更改可能不会在另一个项目中编译。是的,我们计划了一个“高插件”使用架构。但我们也希望在不同的配置/解决方案中保持代码的可编译性。这怎么可能呢?配置管理器绝对是一个好方法。您还可以查看配置转换(例如,您可以获得Web.config.debug、Web.config.release、Web.config.CustomerX)-为“CustomerX”构建时,Web.config.CustomerX中的更改将应用于配置文件。这应该有帮助吗?:)不幸的是,我们使用的是VS2008。因此,我们不能使用配置转换。我猜NAnt也提供同样的服务:)是的,我们计划了一个“高插件”使用架构。但我们也希望在不同的配置/解决方案中保持代码的可编译性。这怎么可能呢?配置管理器绝对是一个好方法。您还可以查看配置转换(例如,您可以获得Web.config.debug、Web.config.release、Web.config.CustomerX)-为“CustomerX”构建时,Web.config.CustomerX中的更改将应用于配置文件。这应该有帮助吗?:)不幸的是,我们使用的是VS2008。因此,我们不能使用配置转换。我想南特也是这样:)