2010-11-12 58 views
7

我們從VS2008更改爲VS2010進行開發。但是安裝應用程序的要求仍然是Framework 3.5。因此我們將構建目標定位於此框架。 一切正常,除了一個奇怪的行爲,罰款我想驗證不成爲一個問題:VS2010更改資源文件引用版本4.0,但目標3.5框架

如果有人編輯現有的項目resources.resx資源和resources.designer.cs改變從2.0 System.Windows.Forms的條目.0.0到4.0.0.0。 例子:

編輯之前:

<assembly alias="System.windows.forms" 
      name="system.windows.forms, Version=2.0.0.0, ...[signature] /> 

後:

<assembly alias="System.windows.forms" 
      name="system.windows.forms, Version=4.0.0.0, ...[signature] /> 

這似乎是ResXFileRef類型圖片的參考。一條線後,它說:

<data name="mypic" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>[pictureinfomation - referencing System.Drawing version 2.0]</value> 
</data> 

運行的應用程序似乎並沒有找版本4 但是我想知道肯定,認爲這是沒有問題的。

任何人有任何想法?我已經搜索了相當長的一段時間,並且無法理解ResXFileRef在Resources機制中的用法。

感謝任何提示,如果我的應用程序仍然只使用3.5版本。

問候

+0

我注意到了類似的東西;即將VS2008的解決方案轉換爲VS2010可能會默默更改項目的.NET Framework目標版本。 – stakx 2010-11-12 12:52:55

+0

絕對有一些透明的映射正在進行。請參閱此線程以供參考:http://stackoverflow.com/questions/4065577/are-dependencies-promoted-in-net-assembly-manifests/4065799#4065799 – 2010-11-12 13:32:31

+0

在資源文件中,您看到?試圖重新創建此項目,並且我無法在項目中的任何位置找到該標籤... – 2010-12-09 17:11:03

回答

0

它在你的應用程序沒有任何影響,因爲生成的二進制文件仍針對.NET 3.5。

如果這是一個錯誤,你不應該是第一個注意到它的人。

1

我不認爲這是一個錯誤。

嘗試編譯應用程序並進行部署並測試。

也使用'ildasm'得到dll的屬性並檢查

+0

我做到了。但我擔心它可能是一個運行時加載的參考,因此會造成運行時風險。所以我想有人確定這個條目是用來做什麼的,以及是否/何時加載(可能只有VS設計師?)。 – Uwe 2010-12-16 15:43:59

+0

我不認爲會發生。你可以給一個測試並檢查它 – 2010-12-21 06:06:13

相關問題