Ostatnio potrzebowałem użyć bardzo fajnego narzędzia dostępnego na CodePlex’ie, tzn. CRM 4.0 Bulk Data Export Tool (aplikacja wraz z kodem dostępna jest tu: http://www.codeplex.com/mscrmbulkdataexport, a jej krótki opis w tym poście: ). Niestety każda próba exportu danych kończy się błędem „Method not found: Single Microsoft.Crm.Sdk.CrmFloat.get_Value()”. Zainteresowałem się trochę bardziej tym błędem. W skrócie mówi on o tym, że nie znalazł metody get_Value() w klasie CrmFloat. W reflektorze widać jednak, że ta metoda jest obecna. O co więc chodzi?

Ano, o dość prostą rzecz… Sygnatura metody pokazuje, że metoda zwraca typ „Single”. A to nieprawda od niedawna :). Bo CrmFloat zwraca w CRM 4.0 typ „Double”. I tyle :). Dlatego błąd twierdzi, że nie ma metody get_Value(), która zwraca rezultat typu Single. I ma rację! Bo zwraca Double :).

Jak więc poradzić sobie z tym błędem w CRM 4.0 Bulk Data Export Tool’u? Wystarczy, że podmienimy programikowi używaną bibliotekę Microsoft.Crm.Sdk.dll na jej najnowszą wersję i przekompilujemy aplikację. Poniżej kroki, jak tego dokonać:

1. Ściągamy źródła CRM 4.0 Bulk Data Export Tool stąd: http://www.codeplex.com/mscrmbulkdataexport/Release/ProjectReleases.aspx?ReleaseId=12682

2. Ściągamy najnowsze CRM 4.0 SDK stąd: http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en

2. Otwieramy projekt „CrmDataExport.sln” w Visual Studio.

3. Z referencji „wyrzucamy” Microsoft.Crm.Sdk i Microsoft.Crm.Sdk.TypeProxy:

4. Dodajemy referencje do najnowszych wersji tych bibliotek. W tym celu klikamy „Add reference” i w okienku w zakładce „Browse” idziemy do folderu z SDK. Z katalogu bin, wybieramy te dwie potrzebne biblioteki: 

5. Kompilujemy projekt (w menu „Build” -> „Build solution”

6. Uruchamiamy programik i wszystko działa! 🙂 Można eksportować dowolne rekordy z naszego CRM’a.

Reklama