-1

在 Form1 中,我这样做了:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;



namespace test
{
    public partial class Form1 : Form
    {

        WindowsFormsApplication1.Form1 f1;

        public Form1()
        {
            InitializeComponent();


                    MessageBox.Show("Oops something went wrong sorry");
                    f1 = new WindowsFormsApplication1.Form1();



        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

其中 f1 是我刚刚添加的第二个项目。

现在我添加了 seocnd 项目作为参考。

在第二个项目中,我做了:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string[] hardDrivedInfo;
        string applicationFileName; 

        public Form1()
        {
            InitializeComponent();

            applicationFileName = Path.GetDirectoryName(Application.ExecutablePath);

但是 applicatioFileName 向我显示了第一个项目的 exe 文件的路径,而我需要获取目录中的第二个项目的目录 + 文件名:D:\C-Sharp\test\test\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

第一个项目的目录是:D:\C-Sharp\test\test\test\bin\Debug\test.exe

但我需要让 applicationFileName 显示:D:\C-Sharp\test\test\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

编辑 **

我想要做的是运行第一个主项目,然后在弹出消息框并关闭它之后它将运行第二个项目会将第二个项目的 exe 文件复制到另一个位置,如 D: 并运行第二个的 exe 文件项目。因此,如果我删除第一个项目 exe 文件,则 D: 上的第二个项目将继续运行。

4

2 回答 2

1

你可以尝试使用

string file = typeof(Form1).Assembly.Location;

有关Assembly.Location更多信息,请参阅:

包含清单的已加载文件的位置。如果加载的文件是卷影复制的,则该位置是卷影复制后文件的位置。如果程序集是从字节数组加载的,例如使用 Load(Byte[]) 方法重载时,则返回的值为空字符串 ("")。

于 2012-05-29T18:25:26.133 回答
0

您的文字有点不清楚,但我猜您正在尝试获取引用程序集的名称,而不是启动该过程的名称,对吗?

尝试使用Assembly.GetExecutingAssembly(). 然后您可以从该Location属性中获取完整路径。

于 2012-05-29T18:24:32.050 回答