将现有构建配置应用于新项目

时间:2016-03-01 04:56:37

标签: c# asp.net-mvc visual-studio-2013

这是方案,

  1. 创建一个新的Web应用程序(MVC5,Empty模板)作为“MyMVCWebApplication”。 默认构建配置像往常一样是Debug和Release。

  2. 导入现有项目“Commont.Logger”,其中包含Debug,Release,Test和Prod构建配置。

  3. 一旦我添加了Common.Logger项目,VS 2013就会在构建配置下拉列表(Run)旁边显示所有Debug,Release,Test和Prod配置。

    但我无法为Web项目中的Web配置(针对Test和Prod)执行“添加配置转换”。 然后我检查了“配置管理器”,我注意到它没有显示Web项目的Test和Prod配置。在编辑配置中,它只有重命名和删除,没有“添加”功能。

    如何将这些Test和Prod构建配置添加到Web项目中?

2 个答案:

答案 0 :(得分:6)

在Configuration Manager(“构建”菜单)中,您会看到项目列表。 在“配置”列中,您有一个下拉列表。在该列表的底部,您可以选择<New...>

<强>更新 正如评论中所提到的,这不会立即起作用。 今天我遇到了类似的情况:

  1. 添加新配置时,在Configuration Manager中,我取消选中&#34; 创建新的解决方案配置&#34;然后点击确定。
  2. 我将工具栏中的配置设置为所需的配置(开发)
  3. 我右键单击app.config并从上下文菜单中选择Add Transform(Slow Cheetah)。
  4. 添加了app.Development.config

答案 1 :(得分:1)

我找到了解决方案。

当工具不起作用或者没有工具时,只有手动编辑sln文件才能弄清楚。

这是仅供参考,

GlobalSection(SolutionConfigurationPlatforms) = preSolution
    Dev|Any CPU = Azure_Dev|Any CPU
    PreProd|Any CPU = Azure_PreProd|Any CPU
    Test|Any CPU = Azure_Test|Any CPU
    Debug|Any CPU = Debug|Any CPU       
    Prod|Any CPU = Prod|Any CPU
    Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Dev|Any CPU.ActiveCfg = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Dev|Any CPU.Build.0 = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.PreProd|Any CPU.ActiveCfg = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.PreProd|Any CPU.Build.0 = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Test|Any CPU.ActiveCfg = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Test|Any CPU.Build.0 = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Dev|Any CPU.ActiveCfg = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Dev|Any CPU.Build.0 = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Prod|Any CPU.ActiveCfg = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Prod|Any CPU.Build.0 = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {8D475C27-8BAF-4B5E-8D65-729A8541B14F}.Release|Any CPU.Build.0 = Release|Any CPU
............more....

这是我的观察。

假设项目ID“8D475C27-8BAF-4B5E-8D65-729A8541B14F”是导入的项目。

当您使用不在“新建项目”(MyMVCWebApplication)中的不同构建配置“添加现有项目”并进行编译时,您将在解决方案的“全局部分”中的导入项目中获得这些新构建配置文件。这就是为什么你可以在“Visual Studio”的环境下拉列表(Debug,Release,...下拉列表)中看到这些配置的原因。

检查Sln文件(用记事本打开)我注意到这些新的构建配置没有添加到GlobalSection(ProjectConfigurationPlatforms)部分的“MyMVCWebApplication”中的项目中。正如您所看到的,每个项目Id每个环境有两行,如CPU.Build.0和CPU.ActiveCfg。 Web项目仅针对Dev和Release具有这些记录。

解决方案: 为引用现有项目的WebProject添加了Solutionfile的配置。