什么是来自csproj的exec tlbimp的msbuild路径?

时间:2013-10-02 10:24:09

标签: c# msbuild tlbimp

我想运行一个预编译目标,我正在编写csproj。这需要运行tlbimp来生成我的项目引用的dll。

我正在尝试执行tlbimp,但是我遇到了无法找到的错误。是否有一个msbuild变量或环境变量我可以使用它推导出它的路径?

2 个答案:

答案 0 :(得分:1)

可能没有直接变量,但您可以使用一些内置变量来构造路径。在我的机器上,我在多个位置都有tlbim.exe:

C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ TlbImp.exe
C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ TlbImp.exe
C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 \ TlbImp.exe
C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ x64 \ TlbImp.exe
C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ TlbImp.exe
C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ x64 \ TlbImp.exe
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ TlbImp.exe
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ TlbImp.exe

我可以使用Windows默认环境变量将我想要的Tlbim.exe用于“C:\ Program files”文件夹:

“%ProgramFiles(x86)%\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ x64 \ Tlbimp.exe”

在Msbuild项目中,你必须使用$(var)而不是%var%,所以它应该是这样的:

“$(ProgramFiles(x86))\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ x64 \ Tlbimp.exe”

希望你明白了......

答案 1 :(得分:1)

使用MSBuild 12(VS2013),

$(TargetFrameworkSDKToolsDirectory)

指向

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\

即。 tlbimp.exe位于

"$(TargetFrameworkSDKToolsDirectory)tlbimp.exe"

Where is this defined?