由于 mt.exe 后期生成事件,如何抑制 GUID 警告?

5

在一个大型的、已存在的代码库中,我有几个*.dll文件需要使用COM互操作进行注册。

这些清单注册是通过以下方式在构建后事件中使用mt.exe执行的:

mt.exe -manifest "$(ProjectDir)myProjectManifestFragment.xml" -nodependency -managedassemblyname:"$(TargetFileName)" -out:"$(TargetName).manifest" -outputresource:"$(TargetFileName)";#2

在这种情况下,明确的GUID不是必需的,但是自然地,mt.exe 会生成以下类型的混乱警告:

mt.exe : genman warning G81010014: Explicit guid not defined for type myInternalType

我的问题是:如何在不明确定义GUID的情况下抑制这些警告?
注意,我不想采取后期构建事件并重定向输出(类似于> NUL),因为我仍然希望接收错误通知。有一种方法可以仅抑制来自mt.exe的stderrs,但我只是想抑制这个警告。我甚至会满足于抑制由mt.exe产生的所有警告(不一定是G81010014)。
MSDN上关于mt.exe的文档似乎只显示了一个冗长的标志,但没有更改详细程度到“简洁”模式的方法,在该模式下,警告将被抑制。在Visual Studio 2010中,显然有一种方式可以抑制特定的警告,但我无法确定如何将其应用于后期构建事件,更不用说仅由mt.exe生成的警告了。
提前感谢!这实际上是我在Stack Overflow上的第一篇文章 :) 让我知道是否需要更具体、广泛等... ^_^
干杯!
-Kadaj

有人吗?我觉得我正确地发布了一个问题...但是完全没有回应 :'( 叹气 - Kadaj Nakamura
1个回答

1

我有同样的问题(VS 2010)。重定向到NUL是我能想到的唯一解决方法。

你可以尝试使用多个命令行或批处理文件并测试错误:

MT.EXE  etc...
if NOT %ERRORLEVEL%==0 ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接