我们有一个控制台应用程序,我们用它来调用DbUp(创建数据库,更新,测试数据等)。没有DEBUG常量定义,#if DEBUG在发布版本上返回true
我们的配置,稳定,即配置为不定义DEBUG常数:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Stable|AnyCPU'">
<OutputPath>bin\Stable\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
然而,当这种大干快上八达通运行,这总是返回true,可容纳部署:
#if DEBUG
Console.ReadLine();
#endif
当我切换到本地稳定配置(VS)时,它会按预期运行并退出。
当我切换到本地调试配置(VS)时,它按预期运行并等待输入。
如果我完全注释掉这些行,它可以在八达通上正常运行(退出,在八达通上部署完成)。
这让我质疑我在生活中的所有选择。
任何想法,为什么这可能发生?
编辑 - 命令用来构建项目(使用的TeamCity)
# Database
Invoke-Msbuild "$rootDir\artifacts\output\Database" `
"$rootDir\MyClient.Database\MyClient.Database.csproj" `
-target 'build' `
-toolsVersion 4.0 `
-maxCpuCount 8 `
-VisualStudioVersion 14.0 `
-logPath "$rootDir\artifacts\logs\Database" `
-namespace 'MyClient' `
-customParameters @('/property:RunOctoPack=true', "/property:OctoPackPackageVersion=$version", "/property:OctoPackNuGetProperties=env=$environment")
如何以及在哪里是这样打造您没有提供关于不变? msbuild命令行? – rene
TeamCity是它建立的地方,它正在创建一个nuget包并将其推送到Octopus – Jack
使用用于构建控制台项目的命令更新了我的问题。 – Jack