VS2008 - โครงการล้าสมัย ไม่มีการเปลี่ยนแปลงบรรทัดโค้ด

ฉันมีปัญหาแปลก ๆ กับ Visual Studio 2008 ฉันค้นหาที่นี่ใน SO เพื่อหาปัญหาที่คล้ายกันกับกล่องโต้ตอบ "โครงการล้าสมัย" แต่ปัญหาของพวกเขาคือพวกเขาใช้ไฟล์ส่วนหัวที่เลิกใช้แล้ว / ไม่มีอยู่อีกต่อไป หรือปัญหาของพวกเขาเกิดขึ้นในขณะที่สร้างโซลูชันหลายโครงการหรือมีการขึ้นต่อกันอื่น ๆ

โครงการของฉันคือแอปพลิเคชันคอนโซล Win32 ฉันไปที่ไฟล์->ใหม่->โครงการ...->แอปพลิเคชันคอนโซล Win32 ฉันใช้การตั้งค่าเริ่มต้น (เลือกส่วนหัวที่คอมไพล์แล้ว) และฉันไม่ได้เปลี่ยนโค้ดแม้แต่บรรทัดเดียวในโปรเจ็กต์ ทันทีที่โปรเจ็กต์สร้างขึ้น ฉันกดปุ่มดีบัก (แม้ว่าฉันจะพบปัญหาเดียวกันทุกประการเมื่อฉันตั้งค่า สร้างเป้าหมายเพื่อเผยแพร่)

[main.cpp]

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

↑ ไฟล์ต้นฉบับมาตรฐานมากใช่ไหม? ไม่ว่าฉันจะสร้างอะไรในโปรเจ็กต์ใดก็ตาม VS2008 บอกฉันว่ามันล้าสมัย ทำไม ปัญหานี้อาจไม่ขัดขวางไม่ให้ฉันสร้างโปรเจ็กต์ แต่ฉันอยากให้ทุกอย่างเป็นระเบียบมากและไม่ต้องเห็นกล่องโต้ตอบนี้อีก ฉันดูคำถามที่คล้ายกันอีกครั้ง แต่วิธีแก้ปัญหาของพวกเขาเกี่ยวข้องกับการลบการพึ่งพาเพิ่มเติมบางอย่างหรือบางอย่างที่ไม่เกี่ยวข้องกับสถานการณ์ของฉัน

ทำไม VS2008 ถึงเลือกจู้จี้กับเทมเพลตโปรเจ็กต์ของตัวเอง


person Brandon Miller    schedule 06.09.2012    source แหล่งที่มา
comment
จะเกิดอะไรขึ้นเมื่อไม่ได้ตรวจสอบส่วนหัวที่คอมไพล์แล้ว?   -  person Jesse Good    schedule 06.09.2012
comment
ไม่มีอะไรจริงๆ แค่อยากให้ข้อมูลให้มากที่สุด สิ่งเดียวที่หมายถึงคือส่วนหัวจะคอมไพล์ในทุกบิลด์แทนที่จะคอมไพล์ครั้งเดียวในไฟล์ .pch แต่ยังคงได้รับกล่องโต้ตอบเดียวกัน   -  person Brandon Miller    schedule 06.09.2012
comment
ใช่ ฉันรู้อย่างนั้น ดูที่นี่สำหรับ รายการวิธีแก้ปัญหาแบบยาว (ส่วนใหญ่ควรใช้กับ vs2008 ด้วย) นอกจากนี้ โปรดอ่าน BuildLog.htm ของคุณและตรวจสอบคำเตือน ฯลฯ ซึ่งจะให้คำแนะนำว่าปัญหาคืออะไร   -  person Jesse Good    schedule 06.09.2012
comment
ใช่ ฉันเข้าใจผิดว่าคุณหมายถึงอะไรที่ไม่ดี เพราะบอกเป็นนัยว่าคุณไม่รู้ว่าส่วนหัวที่คอมไพล์แล้วทำอะไร ฮ่าๆ และ +1 สำหรับคำแนะนำ BuildLog ฉันไม่คิดว่าจะตรวจสอบ แต่ฉันได้ลบโครงการทดสอบทั้งหมดที่ให้คำเตือนแก่ฉันแล้ว ในที่สุดฉันก็เพิ่งตรวจสอบ อย่าแสดงกล่องโต้ตอบนี้อีก ซึ่งมันเพิ่งเกิดขึ้นกับฉันนั่นคือ สาเหตุที่ไม่ได้รับคำเตือน ฝ่ามือ อีกต่อไป (คิดว่าได้รับการแก้ไขแล้ว 555)   -  person Brandon Miller    schedule 06.09.2012


คำตอบ (1)


หากไฟล์ต้นฉบับ (รวมถึงไฟล์รวม) มีวันที่และเวลาในอนาคต คอมไพเลอร์จะคิดว่าไฟล์อ็อบเจ็กต์นั้นล้าสมัยอยู่เสมอ

person Steve Wellens    schedule 06.09.2012
comment
ฉันขอโทษ แต่ฉันไม่ค่อยได้รับวันที่ในอนาคต คุณกำลังบอกว่าปัญหานี้เกี่ยวข้องกับการประทับเวลาจริงในไฟล์หรือไม่ ฉันสามารถแก้ไขโพสต์เพื่อแสดงไฟล์ที่รวมไว้ทั้งหมดได้เช่นกัน - person Brandon Miller; 06.09.2012
comment
ฉันกำลังบอกว่ามันเป็นสิ่งที่ต้องตรวจสอบ บางครั้งเซิร์ฟเวอร์ที่ระบบควบคุมต้นทางเปิดอยู่อาจมีวันที่ไม่ถูกต้อง บางครั้งมันเป็นไฟล์ของบุคคลที่สาม พูดวันที่และเวลาในไฟล์ต้นฉบับ (ไฟล์ต้นฉบับหรือไฟล์ส่วนหัวที่รวมไว้หรือไฟล์ lib ฯลฯ) คือ 2050 00:00 น. เมื่อคอมไพเลอร์ตัดสินใจว่าจะสร้างอะไร ก็จะเห็นไฟล์อ็อบเจ็กต์และไฟล์ exe/dll เก่ากว่าไฟล์ต้นฉบับและสร้างใหม่ - person Steve Wellens; 06.09.2012
comment
โอเค ฉันเห็นสิ่งที่คุณหมายถึง แม้ว่าฉันจะไม่ได้ใช้ระบบควบคุมแหล่งที่มา และมันบอกว่ามันล้าสมัยในบิวด์แรกของโปรเจ็กต์ที่เพิ่งสร้างใหม่ ฉันสร้างโซลูชันโครงการทดสอบที่แตกต่างกันหลายอย่าง โดย 3 รายการแรกให้กล่องโต้ตอบแบบเดียวกันแก่ฉัน แต่รายการสุดท้ายกลับไม่ได้เป็นเช่นนั้น มันแปลก. แต่ขอบคุณที่อธิบายสิ่งนี้ เพราะฉันคิดว่ากล่องโต้ตอบหมายความว่ามีบางอย่างในโครงการเลิกใช้แล้ว แต่ตอนนี้ฉันเห็นว่ามันเกี่ยวข้องกับการประทับเวลา ฉันจะดำเนินการต่อและยอมรับสิ่งนี้เป็นคำตอบ โดยเห็นว่าตอนนี้ฉันเข้าใจปัญหาดีขึ้นได้อย่างไร และด้วยเหตุผลแปลก ๆ บางอย่างฉันไม่มีมันอีกต่อไป :) - person Brandon Miller; 06.09.2012