mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-04-03 12:00:04 +02:00
Version 2.13: TileImageLoader evaluates X-VE-Tile-Info HTTP header.
This commit is contained in:
parent
4d2d6c1273
commit
ff85d3fee4
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -80,5 +80,10 @@ namespace MapControl
|
||||||
|
|
||||||
viewportTransform.Matrix = transform;
|
viewportTransform.Matrix = transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetTileLayer(TileLayer tileLayer)
|
||||||
|
{
|
||||||
|
TileLayer = tileLayer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -96,5 +96,10 @@ namespace MapControl
|
||||||
|
|
||||||
viewportTransform.Matrix = transform;
|
viewportTransform.Matrix = transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetTileLayer(TileLayer tileLayer)
|
||||||
|
{
|
||||||
|
SetCurrentValue(TileLayerProperty, tileLayer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -465,13 +465,13 @@ namespace MapControl
|
||||||
oldCollection.CollectionChanged -= TileLayerCollectionChanged;
|
oldCollection.CollectionChanged -= TileLayerCollectionChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
TileLayer = null;
|
SetTileLayer(null);
|
||||||
ClearTileLayers();
|
ClearTileLayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newTileLayers != null)
|
if (newTileLayers != null)
|
||||||
{
|
{
|
||||||
TileLayer = newTileLayers.FirstOrDefault();
|
SetTileLayer(newTileLayers.FirstOrDefault());
|
||||||
AddTileLayers(0, newTileLayers);
|
AddTileLayers(0, newTileLayers);
|
||||||
|
|
||||||
var newCollection = newTileLayers as INotifyCollectionChanged;
|
var newCollection = newTileLayers as INotifyCollectionChanged;
|
||||||
|
|
@ -517,7 +517,7 @@ namespace MapControl
|
||||||
|
|
||||||
if (TileLayer != tileLayer)
|
if (TileLayer != tileLayer)
|
||||||
{
|
{
|
||||||
TileLayer = tileLayer;
|
SetTileLayer(tileLayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ using System.Windows;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Image.BeginAnimation(Image.OpacityProperty,
|
Image.BeginAnimation(UIElement.OpacityProperty,
|
||||||
new DoubleAnimation { From = 0d, To = 1d, Duration = FadeDuration });
|
new DoubleAnimation { From = 0d, To = 1d, Duration = FadeDuration });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -58,7 +58,7 @@ namespace MapControl
|
||||||
bitmap.ImageOpened -= BitmapImageOpened;
|
bitmap.ImageOpened -= BitmapImageOpened;
|
||||||
bitmap.ImageFailed -= BitmapImageFailed;
|
bitmap.ImageFailed -= BitmapImageFailed;
|
||||||
|
|
||||||
Image.BeginAnimation(Image.OpacityProperty,
|
Image.BeginAnimation(UIElement.OpacityProperty,
|
||||||
new DoubleAnimation { From = 0d, To = 1d, Duration = FadeDuration });
|
new DoubleAnimation { From = 0d, To = 1d, Duration = FadeDuration });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
// Licensed under the Microsoft Public License (Ms-PL)
|
// Licensed under the Microsoft Public License (Ms-PL)
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Media.Animation;
|
using System.Windows.Media.Animation;
|
||||||
|
|
@ -29,7 +30,7 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Image.BeginAnimation(Image.OpacityProperty,
|
Image.BeginAnimation(UIElement.OpacityProperty,
|
||||||
new DoubleAnimation(0d, 1d, FadeDuration));
|
new DoubleAnimation(0d, 1d, FadeDuration));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -49,7 +50,7 @@ namespace MapControl
|
||||||
bitmap.DownloadCompleted -= BitmapDownloadCompleted;
|
bitmap.DownloadCompleted -= BitmapDownloadCompleted;
|
||||||
bitmap.DownloadFailed -= BitmapDownloadFailed;
|
bitmap.DownloadFailed -= BitmapDownloadFailed;
|
||||||
|
|
||||||
Image.BeginAnimation(Image.OpacityProperty,
|
Image.BeginAnimation(UIElement.OpacityProperty,
|
||||||
new DoubleAnimation(0d, 1d, FadeDuration));
|
new DoubleAnimation(0d, 1d, FadeDuration));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -179,14 +179,7 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (image != null)
|
dispatcher.BeginInvoke(new Action<Tile, ImageSource>((t, i) => t.SetImage(i)), tile, image);
|
||||||
{
|
|
||||||
dispatcher.BeginInvoke(new Action<Tile, ImageSource>((t, i) => t.SetImage(i)), tile, image);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tile.SetImage(null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Interlocked.Decrement(ref taskCount);
|
Interlocked.Decrement(ref taskCount);
|
||||||
|
|
@ -245,16 +238,19 @@ namespace MapControl
|
||||||
|
|
||||||
using (var response = (HttpWebResponse)request.GetResponse())
|
using (var response = (HttpWebResponse)request.GetResponse())
|
||||||
{
|
{
|
||||||
using (var responseStream = response.GetResponseStream())
|
if (response.Headers["X-VE-Tile-Info"] != "no-tile") // set by Bing Maps
|
||||||
using (var memoryStream = new MemoryStream())
|
|
||||||
{
|
{
|
||||||
responseStream.CopyTo(memoryStream);
|
using (var responseStream = response.GetResponseStream())
|
||||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
using (var memoryStream = new MemoryStream())
|
||||||
image = ImageLoader.FromStream(memoryStream);
|
|
||||||
|
|
||||||
if (cacheKey != null)
|
|
||||||
{
|
{
|
||||||
SetCachedImage(cacheKey, memoryStream, GetExpiration(response.Headers));
|
responseStream.CopyTo(memoryStream);
|
||||||
|
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||||
|
image = ImageLoader.FromStream(memoryStream);
|
||||||
|
|
||||||
|
if (cacheKey != null)
|
||||||
|
{
|
||||||
|
SetCachedImage(cacheKey, memoryStream, GetExpiration(response.Headers));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MapControl.Caching;
|
|
||||||
using Windows.Storage;
|
using Windows.Storage;
|
||||||
using Windows.Storage.Streams;
|
using Windows.Storage.Streams;
|
||||||
using Windows.UI.Core;
|
using Windows.UI.Core;
|
||||||
|
|
@ -61,13 +60,11 @@ namespace MapControl
|
||||||
{
|
{
|
||||||
public readonly Tile Tile;
|
public readonly Tile Tile;
|
||||||
public readonly Uri Uri;
|
public readonly Uri Uri;
|
||||||
public readonly BitmapSource Image;
|
|
||||||
|
|
||||||
public PendingTile(Tile tile, Uri uri)
|
public PendingTile(Tile tile, Uri uri)
|
||||||
{
|
{
|
||||||
Tile = tile;
|
Tile = tile;
|
||||||
Uri = uri;
|
Uri = uri;
|
||||||
Image = new BitmapImage();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140,22 +137,18 @@ namespace MapControl
|
||||||
private async Task LoadPendingTiles(TileSource tileSource, string sourceName)
|
private async Task LoadPendingTiles(TileSource tileSource, string sourceName)
|
||||||
{
|
{
|
||||||
PendingTile pendingTile;
|
PendingTile pendingTile;
|
||||||
var cache = Cache;
|
|
||||||
|
|
||||||
if (cache == null || sourceName == null)
|
while (pendingTiles.TryDequeue(out pendingTile))
|
||||||
{
|
{
|
||||||
while (pendingTiles.TryDequeue(out pendingTile))
|
var tile = pendingTile.Tile;
|
||||||
|
var uri = pendingTile.Uri;
|
||||||
|
|
||||||
|
if (Cache == null || sourceName == null)
|
||||||
{
|
{
|
||||||
await DownloadImage(pendingTile.Tile, pendingTile.Image, pendingTile.Uri, null);
|
await DownloadImage(tile, uri, null);
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else
|
|
||||||
{
|
|
||||||
while (pendingTiles.TryDequeue(out pendingTile))
|
|
||||||
{
|
{
|
||||||
var tile = pendingTile.Tile;
|
|
||||||
var image = pendingTile.Image;
|
|
||||||
var uri = pendingTile.Uri;
|
|
||||||
var extension = Path.GetExtension(uri.LocalPath);
|
var extension = Path.GetExtension(uri.LocalPath);
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(extension) || extension == ".jpeg")
|
if (string.IsNullOrEmpty(extension) || extension == ".jpeg")
|
||||||
|
|
@ -164,12 +157,12 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
|
|
||||||
var cacheKey = string.Format(@"{0}\{1}\{2}\{3}{4}", sourceName, tile.ZoomLevel, tile.XIndex, tile.Y, extension);
|
var cacheKey = string.Format(@"{0}\{1}\{2}\{3}{4}", sourceName, tile.ZoomLevel, tile.XIndex, tile.Y, extension);
|
||||||
var cacheItem = await cache.GetAsync(cacheKey);
|
var cacheItem = await Cache.GetAsync(cacheKey);
|
||||||
var loaded = false;
|
var loaded = false;
|
||||||
|
|
||||||
if (cacheItem == null || cacheItem.Expiration <= DateTime.UtcNow)
|
if (cacheItem == null || cacheItem.Expiration <= DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
loaded = await DownloadImage(tile, image, uri, cacheKey);
|
loaded = await DownloadImage(tile, uri, cacheKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!loaded && cacheItem != null && cacheItem.Buffer != null)
|
if (!loaded && cacheItem != null && cacheItem.Buffer != null)
|
||||||
|
|
@ -180,7 +173,7 @@ namespace MapControl
|
||||||
await stream.FlushAsync();
|
await stream.FlushAsync();
|
||||||
stream.Seek(0);
|
stream.Seek(0);
|
||||||
|
|
||||||
await LoadImageFromStream(tile, image, stream);
|
await LoadImageFromStream(tile, stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -189,7 +182,7 @@ namespace MapControl
|
||||||
Interlocked.Decrement(ref taskCount);
|
Interlocked.Decrement(ref taskCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> DownloadImage(Tile tile, BitmapSource image, Uri uri, string cacheKey)
|
private async Task<bool> DownloadImage(Tile tile, Uri uri, string cacheKey)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -198,7 +191,7 @@ namespace MapControl
|
||||||
{
|
{
|
||||||
if (response.IsSuccessStatusCode)
|
if (response.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
return await LoadImageFromHttpResponse(response, tile, image, cacheKey);
|
return await LoadImageFromHttpResponse(response, tile, cacheKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.WriteLine("{0}: {1} {2}", uri, (int)response.StatusCode, response.ReasonPhrase);
|
Debug.WriteLine("{0}: {1} {2}", uri, (int)response.StatusCode, response.ReasonPhrase);
|
||||||
|
|
@ -212,8 +205,16 @@ namespace MapControl
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> LoadImageFromHttpResponse(HttpResponseMessage response, Tile tile, BitmapSource image, string cacheKey)
|
private async Task<bool> LoadImageFromHttpResponse(HttpResponseMessage response, Tile tile, string cacheKey)
|
||||||
{
|
{
|
||||||
|
string tileInfo;
|
||||||
|
|
||||||
|
if (response.Headers.TryGetValue("X-VE-Tile-Info", out tileInfo) && tileInfo == "no-tile") // set by Bing Maps
|
||||||
|
{
|
||||||
|
tile.SetImage(null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
using (var stream = new InMemoryRandomAccessStream())
|
using (var stream = new InMemoryRandomAccessStream())
|
||||||
{
|
{
|
||||||
using (var content = response.Content)
|
using (var content = response.Content)
|
||||||
|
|
@ -224,10 +225,9 @@ namespace MapControl
|
||||||
await stream.FlushAsync();
|
await stream.FlushAsync();
|
||||||
stream.Seek(0);
|
stream.Seek(0);
|
||||||
|
|
||||||
var loaded = await LoadImageFromStream(tile, image, stream);
|
var loaded = await LoadImageFromStream(tile, stream);
|
||||||
IImageCache cache;
|
|
||||||
|
|
||||||
if (loaded && cacheKey != null && (cache = Cache) != null)
|
if (loaded && cacheKey != null)
|
||||||
{
|
{
|
||||||
var buffer = new Windows.Storage.Streams.Buffer((uint)stream.Size);
|
var buffer = new Windows.Storage.Streams.Buffer((uint)stream.Size);
|
||||||
|
|
||||||
|
|
@ -246,23 +246,24 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await cache.SetAsync(cacheKey, buffer, DateTime.UtcNow.Add(expiration));
|
await Cache.SetAsync(cacheKey, buffer, DateTime.UtcNow.Add(expiration));
|
||||||
}
|
}
|
||||||
|
|
||||||
return loaded;
|
return loaded;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> LoadImageFromStream(Tile tile, BitmapSource image, IRandomAccessStream stream)
|
private async Task<bool> LoadImageFromStream(Tile tile, IRandomAccessStream stream)
|
||||||
{
|
{
|
||||||
var completion = new TaskCompletionSource<bool>();
|
var completion = new TaskCompletionSource<bool>();
|
||||||
|
|
||||||
var action = image.Dispatcher.RunAsync(
|
var action = tile.Image.Dispatcher.RunAsync(
|
||||||
CoreDispatcherPriority.Normal,
|
CoreDispatcherPriority.Normal,
|
||||||
async () =>
|
async () =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var image = new BitmapImage();
|
||||||
await image.SetSourceAsync(stream);
|
await image.SetSourceAsync(stream);
|
||||||
tile.SetImage(image, true, false);
|
tile.SetImage(image, true, false);
|
||||||
completion.SetResult(true);
|
completion.SetResult(true);
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyCompany("Clemens Fischer")]
|
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||||
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyVersion("2.12.0")]
|
[assembly: AssemblyVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyFileVersion("2.12.0")]
|
[assembly: AssemblyFileVersion(("2.13.0"))]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue