今天遇到一个奇怪的事情 
我的项目里 之前自己测试时 一直是webservice和formMain这两个项目做启动项
然后今天我要给同事测试 就换成另外一个项目 
是用来检测程序有没有资料可以更新 有的话就自动会更新 然后在执行登录窗体的
所以我就改为那个更新的项目做启动项 
program里会有Application.Run(new Form1());
可以运行到这里 竟然弹出 找不到主程序的错误 为什么?搞不明白
回是什么原因呢?
跟我之前设置双启动项有关系吗?因为这个启动项 之前是可以用的

解决方案 »

  1.   

    不过有我还有个疑问 
    在这个单独启动的项目里  program.cs文件里 [STAThread]
    static void Main(string[] args)
    {...}这个Main方法是程序启动 自动执行的吗?
    我想找到调用的地方 因为我总是看到args参数是Null
      

  2.   

    应该是你的Application当前域中没有Form1这个类Main,要是学过C++就知道是程序入口;C#一样啦,多两个加号而已,程序都是从Main开始执行的,单步调试下就理解了
      

  3.   

    1L的问题找到原因了 可是还有个问题 [STAThread]
            static void Main(string[] args)
            { if (args.Length > 0)
                            Application.Run(new FormMain(args[0]));
                        else Application.Run(new FormMain());
    }我断点进去 args.length总是0 可是我要执行new FormMain(args[0])这部分
    能跟我说说 怎么让args有参数吗 对这个地方不太理解
      

  4.   

    Process.Start("xx.exe","params");或者用快捷方式,修改下启动的程序
    "xx.exe" -"params"大概这样
      

  5.   

    如果要有值简单, 我知道两种方法。第一 ,调用的时候,只允许自己的程序,一般加上密码.如你的程序是:A.exe
    Process.Start("A.exe","123135ffta3874649234324234");第二 是注册表里面启动的时候。 
      

  6.   

    你们的意思是 在static void Main()之前 
    会执行Process.Start()来传参吗?
      

  7.   

    新建一个项目,那个项目什么不做,就是调用你的程序即可,你就可以输出arg[0],就知道是什么东西的了。