[英]Debug WindowsService in Visual Studio using preprocessor directive #if
[英]Visual Studio 2013 DEBUG preprocessor directive always defined
我在 Visual Studio 2013 (12.0.40629.00 Update 5) 解決方案中添加了一個新項目,突然#if DEBUG
檢查通過編譯代碼,即使在發布中也是如此。 發布版本禁用了“定義調試常量”,所有項目都構建為發布版本(如配置管理器中所示)。
我在 Google 上發現幾件事情,這是一個已知的錯誤,可以通過卸載和重新加載項目來解決(就像這里,但這無濟於事)。
我也試過undef DEBUG
,但也沒有運氣。
解決方案中的現有項目有效,但這個新項目無效。 它是 Dotnet 標准 4.5,但將其設置為 3.5 無濟於事。
作為發布版本中發生的事情的指示:
Visual Studio 認為它是非活動代碼,但它顯然已編譯並執行(和調試)。
這使得發布版本變得不可能。
編輯:詳細說明以下問題:這不是單元測試,但我開始懷疑是否采用了調試 DLL。 為了能夠發布,我迅速刪除了#if DEBUG
所有代碼,即使在編譯之后,軟件也試圖打開調試數據庫。 當我重新編譯調試時,就可以了。
我又遇到了這個。 我不知道我是怎么做到的,但顯然我添加了引用作為調試 DLL 的鏈接,而不是解決方案中的項目。
這個csproj
差異解釋了它:
- <Reference Include="Bla.Utils">
- <HintPath>..\BlaUtillLib\obj\Debug\Bla.Utils.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.Entity" />
@@ -166,12 +163,19 @@
<Project>{e2bec86c-1c02-4182-8117-740612ed9330}</Project>
<Name>DbDAL</Name>
</ProjectReference>
+ <ProjectReference Include="..\BlaUtillLib\Bla.Utils.csproj">
+ <Project>{6de20344-62f7-45f7-92cd-dbeb19cdc4c5}</Project>
+ <Name>Bla.Utils</Name>
+ </ProjectReference>
我不知道這是怎么發生的。 我不會特意瀏覽解決方案自己項目的 DLL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.