今天下午我遇到了一個奇怪的問題......我有一個混合模式庫,用VS2008構建得很好。我正在轉換到VS2010,並嘗試使用VS2010 IDE來構建這個庫。正如所料,IDE告訴我,該解決方案需要轉換爲VS2010,我讓它做到這一點...沒有在轉換錯誤。我去建立這個庫,似乎有一個編譯指令問題,或者編譯過程無法識別託管代碼中的非託管代碼。 (例子...當引入一個託管標頭時,我看到一個錯誤:cannot convert int to System::String^
其中有一個類方法,它將System::String^
作爲其參數之一,並將成員變量設置爲其值)。無法編譯在VS2010中編譯VS2008並使用MSBuild編譯的混合模式C++/CLR庫
好吧,現在退後一步,返回解決方案/項目文件,然後再轉換。打開VS2010命令提示符並使用MSBuild嘗試構建解決方案,而不先將其轉換。一切正常。
?嗯?
在項目文件中顯然有一些變化,但是什麼?爲什麼IDE不能在不轉換項目文件的情況下構建項目,但MSBuild在沒有咳嗽的情況下突然冒出來?顯然,我希望能夠使用IDE編輯我的源代碼 - 有沒有其他人有過類似的經歷或者之前聽說過這個問題?任何想法如何解決它?
問:你確定你的項目中的所有引用都OK? 「參考文獻」是MSVS「轉換」項目時可能會丟失的第一個東西之一;) – paulsm4 2012-08-08 22:34:08
@ paulsm4是的,檢查了這一點。實際上我竟然打印了項目文件,試圖看看我是否可以在視覺上辨別任何可能會使它發出cro,聲的東西,但無濟於事。 :( 不要誤解我的意思,我從命令行編譯沒有問題,但是我對庫有一些額外的/更改,而且我真的不想這樣構建。 – Will 2012-08-08 22:36:23