如何将tlbexp命令作为生成后事件调用,以从VisualStudio2019 IDE的C#EXE导出类型库?
我开发了一个C#.EXE,它定义了一个COM UDT(用户定义类型): 我需要从这个C#.EXE创建一个类型库。 我可以使用Visual Studio命令提示符执行此操作:如何将tlbexp命令作为生成后事件调用,以从VisualStudio2019 IDE的C#EXE导出类型库?,c#,visual-studio,msbuild,com,typelib,C#,Visual Studio,Msbuild,Com,Typelib,我开发了一个C#.EXE,它定义了一个COM UDT(用户定义类型): 我需要从这个C#.EXE创建一个类型库。 我可以使用Visual Studio命令提示符执行此操作: > tlbexp.exe MyCSharpApp.exe 此命令生成MyCSharpApp.tlb文件 我希望使用Visual Studio 2019自动化此步骤 因此,我在构建后事件中输入了以下行: "tlbexp.exe $(TargetDir)$(TargetFileName)" 但是,
> tlbexp.exe MyCSharpApp.exe
此命令生成MyCSharpApp.tlb
文件
我希望使用Visual Studio 2019自动化此步骤
因此,我在构建后事件中输入了以下行:
"tlbexp.exe $(TargetDir)$(TargetFileName)"
但是,当我从Visual Studio 2019构建项目时,我得到以下错误:
error MSB3073: The command ""tlbexp.exe C:\Path\To\MyCSharpApp.exe"" exited with code 123.
我做错了什么?我错过了什么
如何在生成后事件中自动调用tlbexp?tlbexp.exe通常不在路径中。您可以做的是改用此选项(不要像您所做的那样将“”包围): 这将执行与“shell命令”等效的命令,该命令将适当设置所有路径,然后运行tlbexp:
如果路径中有空格,是否最好用“…”环绕tlbexp的参数?
tlbexp.exe“$(TargetDir)$(TargetFileName)”
您可能需要“”来环绕路径,但不能环绕完整的命令。例如:“blablablabla\my.exe”args
可以,而“blablablablabla\my.exe args”不能
error MSB3073: The command ""tlbexp.exe C:\Path\To\MyCSharpApp.exe"" exited with code 123.
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
tlbexp.exe $(TargetDir)$(TargetFileName)