Monday, May 31, 2010

ArcGIS Engine 10.0, platform target x86.

Nytt i ArcGIS 10.0 är att ESRIs assemblies är kompilerade mot x86 plattformen. Detta innebär att alla projekt som refererar ESRIs DLL:er måste sättas till x86. Annars får man ett felmeddelande i stil med:
Could not load file or assembly 'ESRI.ArcGIS.Version, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86' or one of its dependencies. Det går inte att hitta filen.

Så vid uppgradering av ArcGIS 9.3 applikationer till 10.0, så får man hålla koll på hur plattformen är satt.


Läs mera här: How to migrate ArcGIS 9.3 Desktop and Engine stand-alone applications to ArcGIS 10, Platform CPU target change

Thursday, May 27, 2010

ArcGIS Engine 10.0, RuntimeManager

Nytt i ArcGIS 10 är att ArcGIS desktop och ArcGIS Engine distribueras till var sin katalogstruktur (What's new for developers at 10), detta för att det oberoende av varandra ska gå att lägga in service packar. Detta innebär också att när man bygger standalone applikationer, så måste man välja vilken runtime man vill köra sin applikation under. När man väljer att skapa en ny MapControl Application project så läggs automatiskt kod in i Program.cs för att hantera detta:

 if  (!RuntimeManager .Bind(ProductCode .Engine))

 {

      if  (!RuntimeManager .Bind(ProductCode .Desktop))

      {

          MessageBox .Show("Unable to bind to ArcGIS runtime. Application will be shut down." );

          return ;

      }

 }

 



Värt att notera det nya RuntimeManager objektet som ESRI använder för att göra bind mot runtime versionen. Detta måste göras i koden innan några ArcObjects objekt anropas.

Run VS as administrator.

När man kör Visual Studio (VS) i Windows 7 (Win7), så är det bra att ställa in så att man kör den som administratör eftersom man i annat fall kan få fel i VS. Detta pga att processen körs med för hög säkerhet. Istället för att varje gång komma ihåg att högerklicka och välja "run as administrator" så kan man välja "egenskaper"


och "Advanced" och klicka i "run as admininstrator"




så startas VS alltid med administrator rättigheter.

Wednesday, May 05, 2010

Slå ihop PDF filer med iTextSharp.

Fick en fråga om jag kunde lägga till en sida med text i en rapport som vi genererar via reporting services. Och visst kan man det men då kommer man bli tvungen att underhålla en sida med text via rapporten vilket inte känns så bra. Ett annat alternativ som kändes mer lockande var att kombinera ihop PDF:en som skapas från reporting services med text sidan som en PDF. Så att dom kan underhållas var för sig.

Testade att skapa en applikation för att slå ihop två PDF:er och använde iText# som vi använder i andra projekt och utnyttjade ett exempel som jag hittade på nätet: http://khsw.blogspot.com/2006/04/merge-pdf-files-using-itextsharp.html gjorde enklast möjliga kod:

Dim destination As String = "c:\\testPDF.pdf"

Dim source As List(Of String) = New List(Of String)

source.Add("c:\\1.pdf")
source.Add("c:\\2.pdf")

PdfMerge.MergeFiles(destination, source.ToArray())

Fungerar hur bra som helst!