【问题标题】:Enabling MVCBuildViews based on Conditional Compilation Symbols基于条件编译符号启用 MVCBuildViews
【发布时间】:2014-11-17 04:10:09
【问题描述】:

是否可以在构建中添加条件步骤以检查自定义条件编译符号并启用 MVCBuildViews。我已经找到了一种基于构建配置的方法,就像这样

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>

但不确定如何访问编译符号。

计划是在项目设置>构建>条件编译符号下添加一个符号来控制MVCBuildViews

【问题讨论】:

    标签: asp.net-mvc visual-studio msbuild


    【解决方案1】:

    假设您使用的是 C#,您需要将编译器配置为在构建视图时使用 Eg.TEST 符号,为此您需要使用以下命令覆盖 Web.config 中的配置:

    <system.codedom>
          <compilers>
            <compiler
              language="c#;cs;csharp"
              extension=".cs"
              type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
              compilerOptions="/define:TEST" //Here you need to define your symbol
              warningLevel="1" />
          </compilers>
        </system.codedom>
    

    如果您直接在 Web.config 中应用它,它将起作用,但会定义例如。 TEST 每次。所以你真正应该做的是使用Web.config transformations,以便该符号仅应用于正确的构建配置。

    您可以通过执行以下步骤更新使用先前版本的 MVC 创建的项目,以包括视图的构建时验证:

    1)在文本编辑器中打开项目文件。

    2)在最顶层元素下添加以下元素:&lt;MvcBuildViews&gt;true&lt;/MvcBuildViews&gt;

    3)在项目文件末尾,取消注释&lt;Target Name="AfterBuild"&gt; 元素并修改它以匹配以下内容:

    <Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
        <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
    </Target>
    

    【讨论】:

    • 以这种方式定义您的符号,这与您通过项目属性 > 构建 > 条件编译符号添加它们一样吗?
    【解决方案2】:

    你可以试试这个方法

    <MvcBuildViews Condition="'$(Configuration)'=='Release'">true</MvcBuildViews>
    <MvcBuildViews Condition="'$(Configuration)'!='Release'">false</MvcBuildViews>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2019-03-24
      相关资源
      最近更新 更多