5

我和我的团队在多个项目中使用 VS2012,并与我们的 QA 和 UAT 团队开发了一个工作流,其中涉及 5 个环境:本地、开发阶段、测试、预生产和生产。我们发现自己必须为每个项目和解决方案创建 Local/Dev/Test/Preprod/Prod 构建配置,并删除调试和发布配置。

有没有办法让 VS 在新项目而不是调试/发布配置上默认创建这些环境?

编辑:我找不到任何全局选项,因为似乎构建配置都在各个项目文件夹中。

我所做的是找到一些我最常见的项目并因此修改了项目模板:

  • 修改 .csproj 文件并将 PropertyGroups 替换为以下内容:
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Local|AnyCPU' ">
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <OutputPath>bin\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
    </PropertyGroup>
    <-- SNIP -->
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Prod|AnyCPU' ">
        <DebugType>pdbonly</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>bin\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
    </PropertyGroup>
  • 添加我适当的 Web.Config 转换指令:
    <Content Include="Web.config" />
    <Content Include="Web.Local.config">
        <DependentUpon>Web.config</DependentUpon>
    </Content>
    <Content Include="Web.Dev.config">
        <DependentUpon>Web.config</DependentUpon>
    </Content>
    <Content Include="Web.Test.config">
        <DependentUpon>Web.config</DependentUpon>
    </Content>
    <Content Include="Web.Preprod.config">
        <DependentUpon>Web.config</DependentUpon>
    </Content>
    <Content Include="Web.Prod.config">
        <DependentUpon>Web.config</DependentUpon>
    </Content>
  • 修改了我的 .vstemplate 文件并替换了 Web.Debug 和 Web.Release 配置条目,如下所示:
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.config">WebApiWeb.config</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.Local.config">Web.Local.config</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.Dev.config">Web.Dev.config</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.Test.config">Web.Test.config</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.Preprod.config">Web.Preprod.config</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.Prod.config">Web.Prod.config</ProjectItem>
  • 我将 Web.Debug.config 复制并重命名为 Web.Local.config、Web.Dev.config,并将 Web.Test.config 和 Web.Release.config 复制并重命名为 Web.Preprod.config 和 Web.Prod.config。

当我创建新项目时,我想要的所有环境都在那里,调试就消失了!但是,Release 仍然存在,包括我删除的 web.Release.Config 文件。知道这个无关的配置文件/构建配置可能来自哪里吗?

4

1 回答 1

2

是的,创建一个自定义项目模板。如果这还不够,您甚至可以创建一个自定义项目类型,但是这有点复杂。

于 2013-07-08T17:16:21.397 回答