コード例 #1
0
 /// <summary>
 /// The physical moving of files in a <see cref="Package"/> to a location from where they can be executed.
 /// </summary>
 /// <param name="package"></param>
 /// <returns></returns>
 public Task Deploy(Package package)
 {
     return(this._server.Run(() => {
         // TODO [SAR] potential dead lock with the server action queue, is this lock required?
         lock (this._lock) {
             Logger.Info(this, "Deploying package from " + package.Source + "...");
             this._deployment = new Deployment {
                 PackageContent = this._packageRepository.ExtractPackageInfo(package)
             };
             this._deployment.BinFolder = Path.Combine(this._context.AppFolder, this.Name, "bin", this._deployment.PackageContent.Bootstrapper.Assembly.Version);
             this._deployment.SettingsFolder = Path.Combine(this._context.AppFolder, this.Name, "conf");
             package.Deploy(this._deployment);
             string deploymentInfoPath = Path.Combine(this._deployment.BinFolder, "deployment.info");
             using (FileStream stream = File.Create(deploymentInfoPath)) {
                 XmlSerializer.Serialize(this._deployment, stream, new NamespaceMapping {
                     Prefix = "", Namespace = Serialization.NAMESPACE
                 });
                 Logger.Info(this, "Saved deployment info to " + deploymentInfoPath);
             }
             this.RunUpdates();
             this.Load();
             Logger.Info(this, "Package deployed");
         }
     }));
 }
コード例 #2
0
		/// <summary>
		/// The physical moving of files in a <see cref="Package"/> to a location from where they can be executed.
		/// </summary>
		/// <param name="package"></param>
		/// <returns></returns>
		public Task Deploy(Package package) {
			return (this._server.Run(() => {
				// TODO [SAR] potential dead lock with the server action queue, is this lock required?
				lock(this._lock) {
					Logger.Info(this, "Deploying package from " + package.Source + "...");
					this._deployment = new Deployment { PackageContent = this._packageRepository.ExtractPackageInfo(package) };
					this._deployment.BinFolder = Path.Combine(this._context.AppFolder, this.Name, "bin", this._deployment.PackageContent.Bootstrapper.Assembly.Version);
					this._deployment.SettingsFolder = Path.Combine(this._context.AppFolder, this.Name, "conf");
					package.Deploy(this._deployment);
					string deploymentInfoPath = Path.Combine(this._deployment.BinFolder, "deployment.info");
					using(FileStream stream = File.Create(deploymentInfoPath)) {
						XmlSerializer.Serialize(this._deployment, stream, new NamespaceMapping { Prefix = "", Namespace = Serialization.NAMESPACE });
                        Logger.Info(this, "Saved deployment info to " + deploymentInfoPath);
					}
					this.RunUpdates();
					this.Load();
					Logger.Info(this, "Package deployed");
				}
			}));
		}