Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将tlbexp命令作为生成后事件调用,以从VisualStudio2019 IDE的C#EXE导出类型库?_C#_Visual Studio_Msbuild_Com_Typelib - Fatal编程技术网

如何将tlbexp命令作为生成后事件调用,以从VisualStudio2019 IDE的C#EXE导出类型库?

如何将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)" 但是,

我开发了一个C#.EXE,它定义了一个COM UDT(用户定义类型):

我需要从这个C#.EXE创建一个类型库。 我可以使用Visual Studio命令提示符执行此操作:

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