Where can I get the latest Microsoft.Exchange.WebServices.DLL?
Asked Answered
L

3

17

I'm trying to use the latest Exchange Web Services DLL, however when I search my hard drive I see many versions of Microsoft.Exchange.WebServices.DLL, the most recent being version 14.0.650.7 with a date of 1/24/12.

I want to rebuild my machine but can't find an official place to get this DLL. I attempted to download the latest SDK I don't see any DLL to use, nor is there any CHM for me to use.

Where can I get the latest version of Microsoft.Exchange.WebServices.DLL?

Loveless answered 1/5, 2012 at 17:44 Comment(2)
I'm not sure this isn't off-topic here, but you'll probably want to download and install the latest Web Services Enhancement package: microsoft.com/en-us/download/details.aspx?id=14089.Anear
If that's the latest version, it has a date of 2005. I'm sure those things have been bundled into WCF now, or the latest framework. Are you sure I'm not downgrading by installing it?Loveless
G
6

Current version of the EWS Managed API is 1.2. It seems that Microsoft sometimes forgets to update links to the newest download which makes it hard to find out what the newest version is but I usually go to www.microsoft.com/downloads and search for "Exchange Web Services Managed API" whenever I need a fresh download.


UPDATE: EWS is on NuGet: http://www.nuget.org/packages?q=EWS

Gaillardia answered 2/5, 2012 at 8:11 Comment(1)
Just search for "exchange webservices" in References->Right Click->"Manage NuGet Packages..."Antisyphilitic
T
4

This is an old question, and the two answers by the OP and @JakobChristensen do answer the question. I'll just mention that I'm finding the situation fairly confusing.

I recently (manually, not via NuGet) downloaded the current NuGet version, which they currently call "2.2.0".

https://www.nuget.org/packages/Microsoft.Exchange.WebServices/

But the internal file/product version on the .dll is 15.00.0913.015.

According to this page

https://msdn.microsoft.com/en-us/library/office/dn528373(v=exchg.150).aspx

the file should be placed here:

C:\Program Files\Microsoft\Exchange\Web Services\2.0\

So that's where I placed it. Later, when playing around with a Microsoft sample program I noted that it did indeed reference the file at that location.

But another Microsoft sample program referenced the file in the GAC!

C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Exchange.WebServices\15.0.0.0__31bf3856ad364e35\Microsoft.Exchange.WebServices.dll

This version had file/product version 15.00.0847.030.

I'm not sure how that file got there, probably part of a Visual Studio installation.

There's also something called EWSCore, which is apparently a forked version of the official EWS with some bug fixes.

https://www.nuget.org/packages/EWSCore/

My current decision is that I'll consider the official NuGet version to be the version I'll standardize on, and manually download it to my development PC and my build PC and place it here:

C:\Program Files\Microsoft\Exchange\Web Services\2.0\

Trickish answered 11/10, 2017 at 6:38 Comment(0)
H
0

Options

  1. If you use .net framework, there is a nuget package "Microsoft.Exchange.WebServices 2.2.0" here https://www.nuget.org/packages/Microsoft.Exchange.WebServices

  2. If you use .netstandard/.net5+, you need to go the Github open source project "OfficeDev / ews-managed-api" here https://github.com/OfficeDev/ews-managed-api , and there you download the code, and compile it. However, this project is targeting .net3.5. So, you need to convert/upgrade it to .netstandard/.net5+ manually and compile it for your self. !! Update !!: I took the version as of date of this post from GitHub. Replaced Old Style project with SDK project. Target framework set to netstandard2.0. Added packages System.DirectoryServicesandSystem.Security.Cryptography.Xml. In files, I had to remove few namespaces that not compatible, but were not used. Removed AsImageinPhoto, this is public image retrieving method, not needed - it only converts byte array. And fixed loading issue with Assembly.GetExecutingAssembly().GetTypes();`

Type[] types;
try
{
    types = Assembly.GetExecutingAssembly().GetTypes();
}
catch (ReflectionTypeLoadException ex)
{
    types = ex.Types.Where(t => t != null).ToArray();
}

I also deleted or excluded from project bunch of files related to documentation, fxcop, and assembly info.

And then it worked for sending emails with different API versions. Reading emails is not tested yet.

  1. There is a third option. Nuget has a package "Microsoft.Exchange.WebServices.NETStandard 2.0.0-beta3" But this is not an official Microsoft code. https://www.nuget.org/packages/Microsoft.Exchange.WebServices.NETStandard/2.0.0-beta3 !! Update !!: Got this version and compared to the original code in option #2. This code has more changes than necessary to convert to .netstandard. It has some async stuff added.
Hedy answered 26/10, 2022 at 19:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.