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

Dha*_*777 8 c# asp.net-mvc visual-studio-2013

这是场景,

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

  2. 导入现有项目"Commont.Logger",它具有Debug,Release,Test和Prod构建配置.

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

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

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

Bob*_*rse 7

在Configuration Manager("生成"菜单)中,您可以看到项目列表.在"配置"列中,您有一个下拉列表.在该列表的底部,您可以选择<New...>

更新: 如评论中所述,这不会立即起作用.今天我遇到了类似的情况:

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

这增加了app.Development.config


Dha*_*777 3

我想出了解决办法。

当工具不起作用或没有工具时,唯一的选择就是手动编辑 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....
Run Code Online (Sandbox Code Playgroud)

这是我的观察。

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

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

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

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