Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

where is the "TargetFrameworkSDKToolsDirectory" was defined

Tags:

msbuild

I was using msbuild build my sln and get error message "couldn't find 'AxImp.exe' which already exists under %Program files (x86)%\Microsoft sdks\windows\v8.1A. but seems it find sdk from v8.0A, output info point out the error was in Microsoft.Common.targets file(code see below). I didn't found where the "TargetFrameworkSDKToolsDirectory" was defined, anyone can help me?

environment: winblue(4.5.1 sdk v8.1A) without visual studio.

    <ResolveComReference
      TypeLibNames="@(COMReference)"
      TypeLibFiles="@(COMFileReference)"
      ResolvedAssemblyReferences="@(ReferencePath)"
      WrapperOutputDirectory="$(InteropOutputPath)"
      IncludeVersionInInteropName="$(IncludeVersionInInteropName)"
      KeyContainer="$(KeyContainerName)"
      KeyFile="$(KeyOriginatorFile)"
      DelaySign="$(DelaySign)"
      StateFile="@(_ResolveComReferenceCache)"
      TargetFrameworkVersion="$(TargetFrameworkVersion)"
      TargetProcessorArchitecture="$(ProcessorArchitecture)"
      NoClassMembers="$(ComReferenceNoClassMembers)"
      Silent="$(ResolveComReferenceSilent)"
      EnvironmentVariables="$(ResolveComReferenceEnvironment)"
      **SdkToolsPath="$(ResolveComReferenceToolPath)"**
      ExecuteAsTool="$(ComReferenceExecuteAsTool)"
      MSBuildArchitecture="$(ResolveComReferenceMSBuildArchitecture)"
      ContinueOnError="$(ContinueOnError)">

  <**ResolveComReferenceToolPath** Condition="'$(ResolveComReferenceToolPath)' == ''">$(**TargetFrameworkSDKToolsDirectory**)</ResolveComReferenceToolPath>
like image 919
Darkterror_jl Avatar asked Jul 04 '14 08:07

Darkterror_jl


2 Answers

Depends on the version and platform you're targeting, but latest is at C:\Program Files (x86)\MSBuild\12.0\Bin\Microsoft.NetFramework.CurrentVersion.props, follow your imports, i.e. <Import Project=".targets" />. To get the values run MSBuild with /v:diag and all evaluated properties will be dumped and the start.

like image 77
Ilya Kozhevnikov Avatar answered Oct 25 '22 07:10

Ilya Kozhevnikov


what ended up working for me was installing:

Windows Software Development kit (SDK) for windows 8

even though I'm on widows server 2016

https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk

I guess the clue was in my error:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2428, 5): error MSB3086: Task could not find "LC.exe" using the SdkToolsPath "" or the registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86". Make sure the SdkToolsPath is set and the tool exists in the correct processor specific location under the SdkToolsPath and that the Microsoft Windows SDK is installed

like image 34
Sonic Soul Avatar answered Oct 25 '22 07:10

Sonic Soul