需要一些TFS2010的帮助+一个自动Build +'配置来构建=调试'

Pur*_*ome 2 asp.net debugging preprocessor tfs2010

真.奇怪的.SHIZ.

当我执行TFS Team Build(with Remote Deploy)时,我在网页上的一些#if DEBUG 预处理程序指令代码不会被调用.当我手动 one-click deploy (remote deploy)preprocessor directive代码工作.当我在本地调试时,代码也可以工作.

所以 - 问题看起来与我的配置设置有关Build Template(我想??).所以,这就是我所拥有的: -

alt text http://img256.imageshack.us/img256/4070/59603294.png

没什么太难的.那说... 请善待编译.在'DEBUG'模式下构建我的项目(读取:项目,不是解决方案).

我的代码如下: -

#if DEBUG
    Log.Debug("We are in DEBUG mode.");
#else
    Log.Debug("We are _NOT_ in DEBUG mode.");   
#endif
Run Code Online (Sandbox Code Playgroud)

因此,当调用此代码(在某些aspx页面中)时,它会打印出"我们处于DEBUG模式".什么时候

  • Localhost(Localhost配置:调试)
  • 具有手动一键式重新部署的远程服务器(Localhost Configuration:Debug)

但不是当我让TFS的持续整合开始时.

FML.

我试图看看它是否是CASING情况(即#if debug#if Debug),但它仍然不起作用.

然后我甚至尝试明确地告诉MSBuild配置....

替代文字http://img294.imageshack.us/img294/9970/75495143.png

仍然没有爱.

哦..但这是工友!我ALSO有一些web.config文件转换

  • web.config中
  • web.debug.config
  • web.release.config

...你能猜出哪个文件被转换了?如果你猜对所有场景的web.debug.config获胜者甚至是代码中出错的团队构建!所以它就像构建过程和工作流知道它是一个DEBUG配置.. kewl!但编译后的代码没有???

最后,改变debug="true"debug="false"没有区别.

在我跳出这栋楼之前,有人可以帮忙吗?当我的生活中不断出现这些奇怪的屁股问题时,它会让我失望.

请帮忙!

注意:我不能再接受世界上最小的小提琴捐赠 - 我已经获得了很多.干杯:)

Pur*_*ome 6

好吧,我找到了答案,但我对此并不满意.我将制作一个关于这个bug的视频并通过电子邮件发送给Vishal @ MS ......看看他的想法:)

无论如何,如果你仔细看看默认配置到处都是这个......

DEBUG | Any Cpu

替代文字http://img202.imageshack.us/img202/9196/70272059.png

没什么不寻常的......

现在,当我改变平台时AnyCpu(注意我如何移除空间......)现在它可以正常工作.

例如..

alt text http://img19.imageshack.us/img19/2548/45461348.png

是什么让我想到的是当我检查出.proj文件......这里是一个片段....

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
... snip for brevity ...
    <SccProvider>SAK</SccProvider>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
... snip for brevity ...
    <DesktopBuildPackageLocation />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
... snip for brevity ...          
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

所以是啊..我修好了但是我不确定这是否可以接受或只是侥幸.我需要从MS团队得到一些真正的答案:)