还是要在代码里许可
static class Program
{
[STAThread]
static void Main()
{ ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
IAoInitialize aoInitialize = new AoInitialize();
esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
licenseStatus = aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
比如
IGeoProcessorResult ret = null;
private void button1_Click(object sender, EventArgs e)
{
string sInputPath = @"x:\aa\test\test320902.gdb\DLG\XZDW";
string sOutPutPath = @"x:\aa\test\test320902.gdb\DLG\XWM_BUFFER_BAK";
ESRI.ArcGIS.AnalysisTools.Buffer pBufferTool = new ESRI.ArcGIS.AnalysisTools.Buffer();
pBufferTool.in_features = sInputPath;
pBufferTool.out_feature_class = sOutPutPath;
pBufferTool.buffer_distance_or_field = "BufferKD";
pBufferTool.dissolve_option = "ALL";
pBufferTool.line_side = "FULL";
pBufferTool.line_end_type = "FLAT";
Geoprocessor gp2 = new Geoprocessor();
gp2.OverwriteOutput = true;
gp2.ToolExecuted += Gp2_ToolExecuted;
ret = gp2.ExecuteAsync(pBufferTool);
}
private void Gp2_ToolExecuted(object sender, ToolExecutedEventArgs e)
{
MessageBox.Show(ret.GetMessage(0));
}