2013-10-02 2 views
0

Я хочу запустить цель prebuild, которую я кодирую в csproj. Это нужно для запуска tlbimp для создания dll ссылок на мои проекты.Что такое путь msbuild к Exec tlbimp из csproj?

Я пытаюсь выполнить tlbimp, но я получаю ошибки, которые не могут быть найдены. Есть ли переменная msbuild или переменная среды, которую я могу использовать для вывода пути к ней?

ответ

1

Не может быть прямой переменной, но вы можете использовать некоторые встроенные переменные для построения пути. Как и на моей машине, я tlbim.exe в нескольких местах:

C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ Tlbimp.exe
C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ TlbImp.exe
C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 \ TlbImp. exe
C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ x64 \ TlbImp.exe
C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ TlbImp.exe
C: \ Program Files (x86) \ Microsoft SDK \ 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

И я могу использовать мой желаемый Tlbim.exe, используя переменные среды Windows по умолчанию для папки «C: \ Program Files»:

«% ProgramFiles (x86)% \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ x64 \ Tlbimp.exe»

в проектах MSBuild, вы должны использовать $ (вар) вместо% Var%, поэтому оно должно быть как:

"$ (ProgramFiles (x86)) \ Microsoft SDKs \ Windows \ v8.0A \ Bin \ NETFX 4.0 Tools \ x64 \ Tlbimp.exe"

Надеется, что вы получили эту идею ...

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?)

Смежные вопросы