Exemplo n.º 1
0
        public static void Install()
        {
            try
            {
                var dependenciesFolder = FileSystem.Current.GetDirectory(Resources.DependenciesDir);
                if (!dependenciesFolder.Exists)
                {
                    return;
                }
                var deps = new FrameworkDependencies(Resources.DependenciesFile);

                foreach (KeyValuePair <string, string> dep in deps.Dependencies)
                {
                    if (dep.Key.Contains(".."))
                    {
                        Logger.Current.Write(LogInfoLevel.Error, "Cannot install dependencies outside of the framework dependency folder (" + dep.Key + ")");
                    }
                    else
                    {
                        Logger.Current.Write(LogInfoLevel.Info, "Installing dependency " + dep.Key + " " + dep.Value + "...");
                        var result = ProcessManager.Current.WaitForProcess(Path.Combine(dependenciesFolder.FullName, dep.Key), dep.Value);
                        Logger.Current.Write(result == 0 ? LogInfoLevel.Info : LogInfoLevel.Error, "Dependency " + dep.Key + " completed with code " + result);
                    }
                }

                dependenciesFolder.DeleteWithTimeout();
            }
            catch (Exception ex)
            {
                Logger.Current.Write(ex, "Unable to install dependencies");
            }
        }
Exemplo n.º 2
0
        public void LoadDependenciesFile()
        {
            const string json = @"{
	""dependencies"":[
		{ ""command"": ""vc2013redist_x86.exe"", ""arguments"":""/q"" }
	]
}";

            MockDirectory depsDirectory = ((MockDirectory)MockFileSystem.GetDirectory(EnvironmentSettings.Current.AppDirectory));

            depsDirectory = depsDirectory.AddDirectory("dependencies");
            depsDirectory.AddFile("dependencies.json", json);
            var deps = new FrameworkDependencies(Resources.DependenciesFile);

            Assert.AreEqual(true, deps.IsValid);
            Assert.AreEqual(0, deps.ErrorCollection.Count);
            Assert.AreEqual(1, deps.Dependencies.Count);
            Assert.AreEqual("/q", deps.Dependencies["vc2013redist_x86.exe"]);
        }