///
/// Copyright © 2003-2008 JetBrains s.r.o.
/// You may distribute under the terms of the GNU General Public License, as published by the Free Software Foundation, version 2 (see License.txt in the repository root folder).
///
using JetBrains.Build.Omea.Infra;
using Microsoft.Build.Framework;
namespace JetBrains.Build.Omea.Tasks
{
///
/// Creates a WiX source with the product Registry data included in it.
///
public class WixInstallationData : WixAndProductTask
{
#region Attributes
///
/// Gets or sets the ID of the media into which the components will be generated.
///
[Required]
public string DiskId
{
get
{
return Bag.Get(AttributeName.DiskId, 0).ToString();
}
set
{
Bag.Set(AttributeName.DiskId, int.Parse(value));
}
}
///
/// Gets or sets the path to the file that caches the component GUIDs for the generated components.
///
[Required]
public ITaskItem GuidCacheFile
{
get
{
return Bag.Get(AttributeName.GuidCacheFile);
}
set
{
Bag.Set(AttributeName.GuidCacheFile, value);
}
}
///
/// Gets or sets the full path to the output WiX source code file.
///
[Required]
public ITaskItem OutputFile
{
get
{
return Bag.Get(AttributeName.OutputFile);
}
set
{
Bag.Set(AttributeName.OutputFile, value);
}
}
///
/// Gets or sets the folder where the product home is located.
///
[Required]
public ITaskItem ProductHomeDir
{
get
{
return Bag.Get(AttributeName.ProductHomeDir);
}
set
{
Bag.Set(AttributeName.ProductHomeDir, value);
}
}
///
/// Gets or sets the WiX ComponentGroup ID that will be created in the fragment and populated with the newly-created components, so that it could be mounted into the feature tree.
///
[Required]
public string WixComponentGroupId
{
get
{
return Bag.Get(AttributeName.WixComponentGroupId);
}
set
{
Bag.Set(AttributeName.WixComponentGroupId, value);
}
}
///
/// Gets or sets the WiX Directory ID in the WiX sources into which the created components should be mounted.
/// The directory must be defined somewhere in the directories tree, and a DirectoryRef element will be added to the generated source file referencing the given ID.
///
[Required]
public string WixDirectoryId
{
get
{
return Bag.Get(AttributeName.WixDirectoryId);
}
set
{
Bag.Set(AttributeName.WixDirectoryId, value);
}
}
#endregion
}
}