禁止作为mt.exe构建后事件的结果的GUID警告

Kad*_*ura 5 c# guid suppress-warnings post-build-event visual-studio

在一个大的,预先存在的代码库中,我有几个*.dll,我需要注册COM interop.

这些清单注册使用mt.exe以下列方式作为构建后事件执行:

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

在这种情况下,不需要显式GUID,但是,自然地,mt.exe会生成以下性质的混乱警告:

mt.exe : genman warning G81010014: Explicit guid not defined for type myInternalType
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在不明确定义GUID的情况下抑制这些警告?

注意,我不想采用post-build事件并重定向输出(la> NUL),因为我仍然希望收到错误通知.有一种方法只能从mt.exe中抑制stderrs,但我只想抑制这个警告.我甚至很高兴抑制mt.exe生成的所有警告(具体不必是G81010014).

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

先感谢您!这实际上是我在Stack Overflow上的第一篇文章:)让我知道我是否需要更具体,更广泛等... ^ _ ^

干杯!

-Kadaj

Pie*_*rre 1

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

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

MT.EXE  etc...
if NOT %ERRORLEVEL%==0 ...
Run Code Online (Sandbox Code Playgroud)