2
0
Эх сурвалжийг харах

updated to use iso mounting nuget package

LukePulverenti 12 жил өмнө
parent
commit
5a3e9e5208

+ 0 - 97
MediaBrowser.IsoMounter/MediaBrowser.IsoMounter.csproj

@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{5356AE30-6A6E-4A64-81E3-F76C50595E64}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>MediaBrowser.IsoMounter</RootNamespace>
-    <AssemblyName>MediaBrowser.IsoMounter</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\x86\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
-    <OutputPath>bin\x86\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="pfmclrapi, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\ThirdParty\Pismo\x86\pfmclrapi.dll</HintPath>
-      <EmbedInteropTypes>False</EmbedInteropTypes>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs">
-      <Link>Properties\SharedVersion.cs</Link>
-    </Compile>
-    <Compile Include="PismoIsoManager.cs" />
-    <Compile Include="PismoMount.cs" />
-    <Compile Include="MyPfmFileMountUi.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
-      <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>
-      <Name>MediaBrowser.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj">
-      <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
-      <Name>MediaBrowser.Model</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PostBuildEvent>if $(ConfigurationName) == Release (
-xcopy "$(TargetPath)" "$(SolutionDir)\Nuget\dlls\" /y /d /r /i
-xcopy "$(TargetDir)pfmclrapi.dll" "$(SolutionDir)\Nuget\dlls\" /y /d /r /i
-)</PostBuildEvent>
-  </PropertyGroup>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 92
MediaBrowser.IsoMounter/MyPfmFileMountUi.cs

@@ -1,92 +0,0 @@
-using MediaBrowser.Model.Logging;
-using System.Security;
-
-namespace MediaBrowser.IsoMounter
-{
-    /// <summary>
-    /// Class MyPfmFileMountUi
-    /// </summary>
-    public class MyPfmFileMountUi : PfmFileMountUi
-    {
-        /// <summary>
-        /// The logger
-        /// </summary>
-        private readonly ILogger Logger;
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="MyPfmFileMountUi" /> class.
-        /// </summary>
-        /// <param name="logger">The logger.</param>
-        public MyPfmFileMountUi(ILogger logger)
-        {
-            Logger = logger;
-        }
-
-        /// <summary>
-        /// Clears the password.
-        /// </summary>
-        public void ClearPassword()
-        {
-        }
-
-        /// <summary>
-        /// Completes the specified error message.
-        /// </summary>
-        /// <param name="errorMessage">The error message.</param>
-        public void Complete(string errorMessage)
-        {
-            if (!string.IsNullOrEmpty(errorMessage))
-            {
-                Logger.Error("Complete {0}", errorMessage);
-            }
-        }
-
-        /// <summary>
-        /// Queries the password.
-        /// </summary>
-        /// <param name="prompt">The prompt.</param>
-        /// <param name="count">The count.</param>
-        /// <returns>SecureString.</returns>
-        public SecureString QueryPassword(string prompt, int count)
-        {
-            return new SecureString();
-        }
-
-        /// <summary>
-        /// Resumes this instance.
-        /// </summary>
-        public void Resume()
-        {
-            Logger.Debug("Resume");
-        }
-
-        /// <summary>
-        /// Starts this instance.
-        /// </summary>
-        public void Start()
-        {
-            Logger.Debug("Start");
-        }
-
-        /// <summary>
-        /// Statuses the specified data.
-        /// </summary>
-        /// <param name="data">The data.</param>
-        /// <param name="endOfLine">if set to <c>true</c> [end of line].</param>
-        public void Status(string data, bool endOfLine)
-        {
-            if (!string.IsNullOrEmpty(data))
-            {
-                Logger.Debug("Status {0}", data);
-            }
-        }
-
-        /// <summary>
-        /// Suspends this instance.
-        /// </summary>
-        public void Suspend()
-        {
-            Logger.Debug("Suspend");
-        }
-    }
-}

+ 0 - 214
MediaBrowser.IsoMounter/PismoIsoManager.cs

@@ -1,214 +0,0 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Model.Logging;
-using System;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.IsoMounter
-{
-    /// <summary>
-    /// Class IsoManager
-    /// </summary>
-    public class PismoIsoManager : IIsoManager
-    {
-        /// <summary>
-        /// The mount semaphore - limit to four at a time.
-        /// </summary>
-        private readonly SemaphoreSlim _mountSemaphore = new SemaphoreSlim(4,4);
-
-        /// <summary>
-        /// The PFM API
-        /// </summary>
-        private PfmApi _pfmApi;
-        /// <summary>
-        /// The _PFM API initialized
-        /// </summary>
-        private bool _pfmApiInitialized;
-        /// <summary>
-        /// The _PFM API sync lock
-        /// </summary>
-        private object _pfmApiSyncLock = new object();
-        /// <summary>
-        /// Gets the display prefs.
-        /// </summary>
-        /// <value>The display prefs.</value>
-        private PfmApi PfmApi
-        {
-            get
-            {
-                LazyInitializer.EnsureInitialized(ref _pfmApi, ref _pfmApiInitialized, ref _pfmApiSyncLock, () =>
-                {
-                    var err = PfmStatic.InstallCheck();
-
-                    if (err != PfmInst.installed)
-                    {
-                        throw new Exception("Pismo File Mount Audit Package is not installed");
-                    } 
-                    
-                    PfmApi pfmApi;
-
-                    err = PfmStatic.ApiFactory(out pfmApi);
-
-                    if (err != 0)
-                    {
-                        throw new IOException("Unable to open PFM Api. Pismo File Mount Audit Package is probably not installed.");
-                    }
-
-                    return pfmApi;
-                });
-                return _pfmApi;
-            }
-        }
-
-        /// <summary>
-        /// The _has initialized
-        /// </summary>
-        private bool _hasInitialized;
-
-        /// <summary>
-        /// Gets or sets the logger.
-        /// </summary>
-        /// <value>The logger.</value>
-        private ILogger Logger { get; set; }
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="PismoIsoManager" /> class.
-        /// </summary>
-        /// <param name="logger">The logger.</param>
-        public PismoIsoManager(ILogger logger)
-        {
-            Logger = logger;
-
-            _myPfmFileMountUi = new MyPfmFileMountUi(Logger);
-        }
-
-        /// <summary>
-        /// The _my PFM file mount UI
-        /// </summary>
-        private readonly MyPfmFileMountUi _myPfmFileMountUi;
-
-        /// <summary>
-        /// Mounts the specified iso path.
-        /// </summary>
-        /// <param name="isoPath">The iso path.</param>
-        /// <param name="cancellationToken">The cancellation token.</param>
-        /// <param name="visibleToAllProcesses">if set to <c>true</c> [visible to all processes].</param>
-        /// <returns>IsoMount.</returns>
-        /// <exception cref="System.ArgumentNullException">isoPath</exception>
-        /// <exception cref="System.IO.IOException">Unable to create mount.</exception>
-        public async Task<IIsoMount> Mount(string isoPath, CancellationToken cancellationToken, bool visibleToAllProcesses = true)
-        {
-            if (string.IsNullOrEmpty(isoPath))
-            {
-                throw new ArgumentNullException("isoPath");
-            }
-
-            PfmFileMount mount;
-            var err = PfmApi.FileMountCreate(out mount);
-
-            if (err != 0)
-            {
-                throw new IOException("Unable to create mount for " + isoPath);
-            }
-
-            _hasInitialized = true;
-
-            var fmp = new PfmFileMountCreateParams { };
-
-            fmp.ui = _myPfmFileMountUi;
-
-            fmp.fileMountFlags |= PfmFileMountFlag.inProcess;
-
-            if (visibleToAllProcesses)
-            {
-                fmp.visibleProcessId = PfmVisibleProcessId.all;
-            }
-
-            fmp.mountFileName = isoPath;
-
-            // unc only
-            fmp.mountFlags |= PfmMountFlag.uncOnly;
-            fmp.mountFlags |= PfmMountFlag.noShellNotify;
-            fmp.mountFlags |= PfmMountFlag.readOnly;
-
-            Logger.Info("Mounting {0}", isoPath);
-
-            await _mountSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
-
-            err = mount.Start(fmp);
-
-            if (err != 0)
-            {
-                _mountSemaphore.Release();
-                mount.Dispose();
-                throw new IOException("Unable to start mount for " + isoPath);
-            }
-
-            err = mount.WaitReady();
-
-            if (err != 0)
-            {
-                _mountSemaphore.Release();
-                mount.Dispose();
-                throw new IOException("Unable to start mount for " + isoPath);
-            }
-
-            return new PismoMount(mount, isoPath, this, Logger);
-        }
-
-        /// <summary>
-        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-        /// </summary>
-        public void Dispose()
-        {
-            Dispose(true);
-        }
-
-        /// <summary>
-        /// Releases unmanaged and - optionally - managed resources.
-        /// </summary>
-        /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
-        protected virtual void Dispose(bool dispose)
-        {
-            if (dispose)
-            {
-                if (_hasInitialized)
-                {
-                    Logger.Info("Disposing PfmPapi");
-                    _pfmApi.Dispose();
-
-                    Logger.Info("PfmStatic.ApiUnload");
-                    PfmStatic.ApiUnload();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether this instance can mount.
-        /// </summary>
-        /// <param name="path">The path.</param>
-        /// <returns><c>true</c> if this instance can mount the specified path; otherwise, <c>false</c>.</returns>
-        /// <value><c>true</c> if this instance can mount; otherwise, <c>false</c>.</value>
-        public bool CanMount(string path)
-        {
-            try
-            {
-                return string.Equals(Path.GetExtension(path), ".iso", StringComparison.OrdinalIgnoreCase) && PfmApi != null;
-            }
-            catch
-            {
-                return false;
-            }
-        }
-
-        /// <summary>
-        /// Called when [unmount].
-        /// </summary>
-        /// <param name="mount">The mount.</param>
-        internal void OnUnmount(PismoMount mount)
-        {
-            _mountSemaphore.Release();
-        }
-    }
-}

+ 0 - 94
MediaBrowser.IsoMounter/PismoMount.cs

@@ -1,94 +0,0 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Model.Logging;
-using System;
-
-namespace MediaBrowser.IsoMounter
-{
-    /// <summary>
-    /// Class IsoMount
-    /// </summary>
-    internal class PismoMount : IIsoMount
-    {
-        /// <summary>
-        /// Gets or sets the iso path.
-        /// </summary>
-        /// <value>The iso path.</value>
-        public string IsoPath { get; internal set; }
-
-        /// <summary>
-        /// Gets the mounted path.
-        /// </summary>
-        /// <value>The mounted path.</value>
-        public string MountedPath { get; internal set; }
-
-        /// <summary>
-        /// The PFM file mount
-        /// </summary>
-        private PfmFileMount _pfmFileMount;
-
-        /// <summary>
-        /// The _iso manager
-        /// </summary>
-        private readonly PismoIsoManager _isoManager;
-
-        /// <summary>
-        /// Gets or sets the logger.
-        /// </summary>
-        /// <value>The logger.</value>
-        private ILogger Logger { get; set; }
-
-        /// <summary>
-        /// Prevents a default instance of the <see cref="PismoMount" /> class from being created.
-        /// </summary>
-        /// <param name="mount">The mount.</param>
-        /// <param name="isoPath">The iso path.</param>
-        /// <param name="isoManager">The iso manager.</param>
-        /// <param name="logger">The logger.</param>
-        internal PismoMount(PfmFileMount mount, string isoPath, PismoIsoManager isoManager, ILogger logger)
-        {
-            _pfmFileMount = mount;
-            IsoPath = isoPath;
-            _isoManager = isoManager;
-            Logger = logger;
-
-            MountedPath = mount.GetMount().GetUncName();
-        }
-
-        /// <summary>
-        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-        /// </summary>
-        public void Dispose()
-        {
-            Dispose(true);
-            GC.SuppressFinalize(this);
-        }
-
-        /// <summary>
-        /// Releases unmanaged and - optionally - managed resources.
-        /// </summary>
-        /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
-        protected virtual void Dispose(bool dispose)
-        {
-            UnMount();
-        }
-
-        /// <summary>
-        /// Uns the mount.
-        /// </summary>
-        private void UnMount()
-        {
-            if (_pfmFileMount != null)
-            {
-                Logger.Info("Unmounting {0}", IsoPath);
-
-                _pfmFileMount.Cancel();
-                _pfmFileMount.Detach();
-
-                _isoManager.OnUnmount(this);
-
-                _pfmFileMount.Dispose();
-                _pfmFileMount = null;
-            }
-        }
-    }
-}

+ 0 - 30
MediaBrowser.IsoMounter/Properties/AssemblyInfo.cs

@@ -1,30 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("MediaBrowser.IsoMounter")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("MediaBrowser.IsoMounter")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("891a8cbf-e9d1-426a-a2c2-1e5761e2f3cf")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//

+ 3 - 4
MediaBrowser.Server.Implementations/Library/UserManager.cs

@@ -1,6 +1,4 @@
-using System.Security.Cryptography;
-using System.Text;
-using MediaBrowser.Common.Events;
+using MediaBrowser.Common.Events;
 using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
@@ -9,9 +7,10 @@ using MediaBrowser.Controller.Library;
 using MediaBrowser.Model.Connectivity;
 using MediaBrowser.Model.Logging;
 using System;
-using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Cryptography;
+using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 

+ 8 - 4
MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj

@@ -123,10 +123,18 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\DotNetZip.1.9.1.8\lib\net20\Ionic.Zip.dll</HintPath>
     </Reference>
+    <Reference Include="MediaBrowser.IsoMounter, Version=1.0.4827.21973, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\packages\MediaBrowser.IsoMounting.3.0.51\lib\net45\MediaBrowser.IsoMounter.dll</HintPath>
+    </Reference>
     <Reference Include="NLog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\NLog.2.0.0.2000\lib\net40\NLog.dll</HintPath>
     </Reference>
+    <Reference Include="pfmclrapi, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\packages\MediaBrowser.IsoMounting.3.0.51\lib\net45\pfmclrapi.dll</HintPath>
+    </Reference>
     <Reference Include="SimpleInjector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\SimpleInjector.2.0.0-beta5\lib\net40-client\SimpleInjector.dll</HintPath>
@@ -264,10 +272,6 @@
       <Project>{17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2}</Project>
       <Name>MediaBrowser.Controller</Name>
     </ProjectReference>
-    <ProjectReference Include="..\MediaBrowser.IsoMounter\MediaBrowser.IsoMounter.csproj">
-      <Project>{5356ae30-6a6e-4a64-81e3-f76c50595e64}</Project>
-      <Name>MediaBrowser.IsoMounter</Name>
-    </ProjectReference>
     <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj">
       <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
       <Name>MediaBrowser.Model</Name>

+ 1 - 0
MediaBrowser.ServerApplication/packages.config

@@ -2,6 +2,7 @@
 <packages>
   <package id="DotNetZip" version="1.9.1.8" targetFramework="net45" />
   <package id="Hardcodet.Wpf.TaskbarNotification" version="1.0.4.0" targetFramework="net45" />
+  <package id="MediaBrowser.IsoMounting" version="3.0.51" targetFramework="net45" />
   <package id="NLog" version="2.0.0.2000" targetFramework="net45" />
   <package id="SimpleInjector" version="2.0.0-beta5" targetFramework="net45" />
   <package id="System.Data.SQLite" version="1.0.84.0" targetFramework="net45" />

+ 3 - 16
MediaBrowser.sln

@@ -27,8 +27,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget (2)", ".nuget (2)",
 		.nuget\NuGet.targets = .nuget\NuGet.targets
 	EndProjectSection
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.IsoMounter", "MediaBrowser.IsoMounter\MediaBrowser.IsoMounter.csproj", "{5356AE30-6A6E-4A64-81E3-F76C50595E64}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Installer", "MediaBrowser.Installer\MediaBrowser.Installer.csproj", "{3879F78A-D6F6-45E5-B2A8-D8DCF2DABB74}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common.Implementations", "MediaBrowser.Common.Implementations\MediaBrowser.Common.Implementations.csproj", "{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}"
@@ -147,20 +145,6 @@ Global
 		{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x64.ActiveCfg = Release|Any CPU
 		{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.ActiveCfg = Release|Any CPU
 		{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.Build.0 = Release|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|Any CPU.Build.0 = Debug|x86
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|Any CPU.ActiveCfg = Release|x86
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|Any CPU.Build.0 = Release|x86
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|Win32.ActiveCfg = Release|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|x64.ActiveCfg = Release|Any CPU
-		{5356AE30-6A6E-4A64-81E3-F76C50595E64}.Release|x86.ActiveCfg = Release|Any CPU
 		{3879F78A-D6F6-45E5-B2A8-D8DCF2DABB74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3879F78A-D6F6-45E5-B2A8-D8DCF2DABB74}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3879F78A-D6F6-45E5-B2A8-D8DCF2DABB74}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -221,4 +205,7 @@ Global
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(Performance) = preSolution
+		HasPerformanceSessions = true
+	EndGlobalSection
 EndGlobal

+ 2 - 4
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.51</version>
+        <version>3.0.52</version>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains common components shared by Media Browser Theatre and Media Browser Server. Not intended for plugin developer consumption.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.51" />
+            <dependency id="MediaBrowser.Common" version="3.0.52" />
             <dependency id="NLog" version="2.0.0.2000" />
             <dependency id="ServiceStack.Text" version="3.9.38" />
             <dependency id="protobuf-net" version="2.0.0.621" />
@@ -20,8 +20,6 @@
     </metadata>
     <files>
         <file src="dlls\MediaBrowser.Common.Implementations.dll" target="lib\net45\MediaBrowser.Common.Implementations.dll" />
-        <file src="dlls\MediaBrowser.IsoMounter.dll" target="lib\net45\MediaBrowser.IsoMounter.dll" />
         <file src="dlls\Mediabrowser.PluginSecurity.dll" target="lib\net45\Mediabrowser.PluginSecurity.dll" />
-        <file src="dlls\pfmclrapi.dll" target="lib\net45\pfmclrapi.dll" />
     </files>
 </package>

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common</id>
-        <version>3.0.51</version>
+        <version>3.0.52</version>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.51</version>
+        <version>3.0.52</version>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.51" />
+            <dependency id="MediaBrowser.Common" version="3.0.52" />
         </dependencies>
     </metadata>
     <files>