我正在使用C#编写一个Windows服务,它会启动我另外一个应用程序的多个实例。这个应用程序有可能被安装在机器上的任何位置。那么,如何让服务知道应用程序的安装位置是最好的方式呢?
我正在使用C#编写一个Windows服务,它会启动我另外一个应用程序的多个实例。这个应用程序有可能被安装在机器上的任何位置。那么,如何让服务知道应用程序的安装位置是最好的方式呢?
如果您需要查找安装服务的文件夹,您可以使用以下代码:
this.GetType().Assembly.Location
[DllImport("MSI.DLL", CharSet = CharSet.Auto)]
private static extern UInt32 MsiGetComponentPath(
string szProduct,
string szComponent,
StringBuilder lpPathBuf,
ref int pcchBuf);
private static string GetComponentPath(string product, string component)
{
int pathLength = 1024;
StringBuilder path = new StringBuilder(pathLength);
MsiGetComponentPath(product, component, path, ref pathLength);
return path.ToString();
}
using System.IO;
using System.Windows.Forms;
string appPath = Path.GetDirectoryName(Application.ExecutablePath)
这是针对一个应用程序(上面)的。
针对一个ASP.NET项目:
using System.Web;
HttpContext.Current.Server.MapPath( "place arguments here" );
System.Environment.CurrentDirectory