簡體   English   中英

Visual Studio 2013 DEBUG 預處理器指令始終定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM