还是要在代码里许可
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)); }