updated to use iso mounting nuget package

This commit is contained in:
LukePulverenti 2013-03-20 13:28:12 -04:00
parent e25258e1c0
commit 5a3e9e5208
12 changed files with 20 additions and 558 deletions

View File

@ -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>

View File

@ -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");
}
}
}

View File

@ -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();
}
}
}

View File

@ -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;
}
}
}
}

View File

@ -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
//

View File

@ -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;

View File

@ -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>

View File

@ -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" />

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>