2011年7月22日 星期五

[Visual Studio] 無法找到AL.exe (錯誤訊息MSB3084及MSB3086)

使用Visual studio 2010 express測試javascript file多語言,
在加入另一語系的Resources.OO.resx後, 出現以下的錯誤訊息:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2342,9): warning MSB3084: 工作嘗試在以下兩個位置尋找 "AL.exe"。1) 在根據 SdkToolsPath 而產生的 "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\" (處理器專屬目錄) 底下 2) 在 SDKToolsPath 屬性所指定之 "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\" 底下的 x86 專屬目錄。您可以執行下列其中一項來解決這個問題:  1) 將 "SDKToolsPath" 屬性設為 Microsoft Windows SDK 的位置。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2342,9): error MSB3086:
工作無法使用 SdkToolsPath "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\"
或登錄機碼 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A" 來尋找 "AL.exe"。請確認已設定 SdkToolsPath、工具存在於 SdkToolsPath 底下的正確處理器專屬位置,以及已安裝 Microsoft Windows SDK。





失敗了很多次才解決此問題,以下是嚐試過的方法(失敗範例):
- 將Resources.OO.resx更名為Resources.OO-00.resx。
http://kgrhash.wordpress.com/2010/12/17/fix-task-could-not-find-al-exe-using-the-sdktoolspath/

- 尋找AL.exe(在C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin底下),將它複製到
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin。

- 修改註冊表,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A的InstallationFolder="C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\"。

- 安裝完整版的.Net Framework 4.0,http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0a391abd-25c1-4fc0-
919f-b21f31ab88b7。

以上皆是失敗的示範 (頭大)。



最後找到的解法:
1. 安裝SDK for Windows 7 and .NET Framework 4,
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279

2. 修改註冊表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0底下有3處的值以"v7.1"取代"v7.0A"的部分,
FrameworkSDKRoot=$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1@InstallationFolder)
SDK35ToolsPath=$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx35Tools-x86@InstallationFolder)
SDK40ToolsPath=$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools-x86@InstallationFolder)

之後便能在加入Resources.OO.resx時,順利建置。

沒有留言:

張貼留言