簡體   English   中英

使用Windows 8 / VS2012時目標.Net 4.0

[英]Target .Net 4.0 when using Windows 8 / VS2012

我在Windows 8機器上構建目標為.net4.0的合並DLL時遇到一些問題。 我可以在VS2012中成功構建單個.net4.0 dll,因此我沒有此問題:

在Windows 8上的VS 2012中定位.NET 4.0

我遇到了以下精彩的博客文章,討論了我的問題:

http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx

並且:

無法從程序集“ mscorlib”加載類型“ System.Runtime.CompilerServices.ExtensionAttribute”

建議在合並過程中使用以下語法:

/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"

不幸的是,在Windows 8中我沒有此目錄。 我可以考慮以下可能的解決方案,但想知道是否有人已經解決了這個問題。

  1. 將Windows 7計算機上的.net 4.0程序集手動復制到上述目錄中。
  2. 查找VS2012使用的.net 4.0程序集,然后引用它們。
  3. ??

我也在使用Windows 8和VS 2012,但沒有遇到過這個問題(當然,其他人也很好)。 很簡單,可能只是您安裝了v3.5或v4.5,這意味着您需要安裝v4.0框架(如果已經嘗試過,請再次...)。

我還發現,您給的文件夾路徑並不能將我帶到PC上的任何位置,但是可以。

C:\Program Files\Reference Assemblies\Microsoft\Framework\

您可以在PC上嘗試該路徑,看看是否有v4.0文件夾。

非常感謝您的評論和反饋。 一個有效的(hacky)解決方案是執行以下操作:

  1. 在Windows 8 C:\\Program Files\\Reference Assemblies\\Microsoft\\Framework\\v4.0上創建一個新目錄。
  2. 轉到未安裝.net4.5的Windows 7計算機,然后復制文件夾C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319
  3. 將步驟2中的文件粘貼到步驟1中創建的文件夾中。

然后,我可以使用以下命令正確引用Windows 8中的.net4.0程序集:

/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0"

經測試正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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