退出代码100.信号量太多

时间:2014-02-06 00:33:11

标签: c# .net

我正在Visual Studio 2012中编写一个C#程序,我遇到了问题。 这是我的代码片段:

Process proc = new Process();

proc.StartInfo.Verb = "runas";
proc.StartInfo.FileName = "C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\regasm.exe";
proc.StartInfo.Arguments = "Absolute\\path\\to\\File.dll /codebase /tlb";
proc.Start();
proc.WaitForExit();

MessageBox.Show("Exit code: "+proc.ExitCode);
proc.Close();

问题是,当我构建一个Debug二进制文件并运行它时,它的效果非常好。启动regasm.exe,注册DLL,生成.tlb文件,这都是花花公子。

但是当我运行Release二进制文件时,没有任何作用,MessageBox显示“退出代码:100”。我查了一下,但根本没有找到任何有用的东西。


在此处找到我的解决方案:http://objectmix.com/dotnet/320921-regasm-tlb-complaints-element-not-found.html

RegAsm.exe错误是这样的:

RegAsm : error RA0000 : Type library exporter encountered an error while
processing 'Ruby2net.IRuby2net, Ruby2net'. Error: Element not found.

看起来好像是因为我在程序中偶然使用了两次相同的GUID。谢谢大家的时间。

2 个答案:

答案 0 :(得分:3)

很多Google点击“regasm退出代码100”,只是看看。

Regasm 显示错误消息,您无法看到它,因为控制台窗口会立即关闭。您需要保持打开状态,以便阅读错误消息。通过使用/ k选项运行cmd.exe(保留)来执行此操作。大致是:

        var proc = new System.Diagnostics.Process();

        proc.StartInfo.Verb = "runas";
        proc.StartInfo.FileName = "cmd.exe";
        proc.StartInfo.Arguments = "/k C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\regasm.exe \"Absolute\\path\\to\\File.dll\" /codebase /tlb";
        proc.Start();

答案 1 :(得分:0)

事实证明这是一个如此愚蠢的错误......

问题是我在两个地方使用了相同的GUID,复制和粘贴时出现了一个简单的错误。谢谢大家的宝贵时间。