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 的情况下抑制这些警告?

请注意,我不想接受构建后事件并重定向输出(a la > NUL),因为我仍然希望接收错误通知。有一种方法可以只抑制 mt.exe 中的标准错误,但我只想抑制这个警告。我什至会很高兴抑制 mt.exe 生成的所有警告(不一定是 G81010014)。

MSDN 上的 mt.exe 文档似乎只显示了一个详细标志,但无法将详细级别更改为“简洁”模式,在这种模式下警告将被抑制。在 Visual Studio 2010 中,显然有一种方式可以抑制特定警告,但我无法确定这如何适用于特定的构建后事件,更不用说仅由 mt.exe 生成的警告了。

先感谢您!这实际上是我在 Stack Overflow 上的第一篇文章 :) 如果我需要更具体、更广泛等,请告诉我... ^_^

干杯!

-卡达伊

4

1 回答 1

1

我有同样的问题(VS 2010)。重定向到 NUL 是我能想到的。

您总是可以执行多命令行或批处理文件并测试错误:

MT.EXE  etc...
if NOT %ERRORLEVEL%==0 ...
于 2016-05-21T22:25:20.347 回答