本文整理汇总了C#中BundleInstaller.Modify方法的典型用法代码示例。如果您正苦于以下问题:C# BundleInstaller.Modify方法的具体用法?C# BundleInstaller.Modify怎么用?C# BundleInstaller.Modify使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BundleInstaller
的用法示例。
在下文中一共展示了BundleInstaller.Modify方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Burn_FeatureInstallUninstall
public void Burn_FeatureInstallUninstall()
{
// Build the packages.
string packageA = new PackageBuilder(this, "A").Build().Output;
// Create the named bind paths to the packages.
Dictionary<string, string> bindPaths = new Dictionary<string, string>();
bindPaths.Add("packageA", packageA);
string bundleA = new BundleBuilder(this, "BundleA") { BindPaths = bindPaths, Extensions = Extensions }.Build().Output;
BundleInstaller install = new BundleInstaller(this, bundleA).Install();
// Source file should *not* be installed, main registry key should be present.
string packageSourceCodeInstalled = this.GetTestInstallFolder(@"A\A.wxs");
Assert.False(File.Exists(packageSourceCodeInstalled), String.Concat("Should not have found Package A payload installed at: ", packageSourceCodeInstalled));
using (RegistryKey root = this.GetTestRegistryRoot())
{
string actualVersion = root.GetValue("A") as string;
Assert.Equal("1.0.0.0", actualVersion);
}
// Now turn on the feature.
this.SetPackageRequestedState("PackageA", RequestState.Present);
this.SetPackageFeatureState("PackageA", "Test", FeatureState.Local);
install.Modify();
Assert.True(File.Exists(packageSourceCodeInstalled), String.Concat("Should have found Package A payload installed at: ", packageSourceCodeInstalled));
this.ResetPackageStates("PackageA");
// Turn the feature back off.
this.SetPackageRequestedState("PackageA", RequestState.Present);
this.SetPackageFeatureState("PackageA", "Test", FeatureState.Absent);
install.Modify();
Assert.False(File.Exists(packageSourceCodeInstalled), String.Concat("Should have removed Package A payload from: ", packageSourceCodeInstalled));
this.ResetPackageStates("PackageA");
// Uninstall everything.
install.Uninstall();
Assert.False(File.Exists(packageSourceCodeInstalled), String.Concat("Package A payload should have been removed by uninstall from: ", packageSourceCodeInstalled));
Assert.True(null == this.GetTestRegistryRoot(), "Test registry key should have been removed during uninstall.");
this.Complete();
}
示例2: Burn_SlipstreamRemovePatchAlone
public void Burn_SlipstreamRemovePatchAlone()
{
const string patchedVersion = V101;
string bundleA = this.GetBundleA().Output;
BundleInstaller install = new BundleInstaller(this, bundleA).Install();
string packageSourceCodeInstalled = this.GetTestInstallFolder(@"A\A.wxs");
Assert.True(File.Exists(packageSourceCodeInstalled), String.Concat("Should have found Package A payload installed at: ", packageSourceCodeInstalled));
using (RegistryKey root = this.GetTestRegistryRoot())
{
string actualVersion = root.GetValue("A") as string;
Assert.Equal(patchedVersion, actualVersion);
}
// Remove only the slipstream patch and ensure the version is back to default.
this.SetPackageRequestedState("patchA", RequestState.Absent);
install.Modify();
Assert.True(File.Exists(packageSourceCodeInstalled), String.Concat("Should have found Package A payload *still* installed at: ", packageSourceCodeInstalled));
using (RegistryKey root = this.GetTestRegistryRoot())
{
string actualVersion = root.GetValue("A") as string;
Assert.True("1.0.0.0".Equals(actualVersion), "Patch A should have been removed and so the registry key would go back to default version.");
}
install.Uninstall(); // uninstall just to make sure no error occur removing the package without the patch.
this.Complete();
}
示例3: Burn_SlipstreamRemovePackageAndPatch
public void Burn_SlipstreamRemovePackageAndPatch()
{
const string patchedVersion = V101;
// Create bundle and install everything.
string bundleB = this.GetBundleB().Output;
BundleInstaller install = new BundleInstaller(this, bundleB).Install();
string packageSourceCodeInstalled = this.GetTestInstallFolder(@"A\A.wxs");
Assert.True(File.Exists(packageSourceCodeInstalled), String.Concat("Should have found Package A payload installed at: ", packageSourceCodeInstalled));
using (RegistryKey root = this.GetTestRegistryRoot())
{
string actualVersion = root.GetValue("A") as string;
Assert.Equal(patchedVersion, actualVersion);
}
packageSourceCodeInstalled = this.GetTestInstallFolder(@"B\B.wxs");
Assert.True(File.Exists(packageSourceCodeInstalled), String.Concat("Should have found Package B payload installed at: ", packageSourceCodeInstalled));
// Remove package A and its patch should go with it.
this.SetPackageRequestedState("packageA", RequestState.Absent);
this.SetPackageRequestedState("patchA", RequestState.Absent);
install.Modify();
this.ResetPackageStates("packageA");
this.ResetPackageStates("patchA");
packageSourceCodeInstalled = this.GetTestInstallFolder(@"A\A.wxs");
Assert.False(File.Exists(packageSourceCodeInstalled), String.Concat("After modify, should *not* have found Package A payload installed at: ", packageSourceCodeInstalled));
// Remove.
install.Uninstall();
packageSourceCodeInstalled = this.GetTestInstallFolder(@"B\B.wxs");
Assert.False(File.Exists(packageSourceCodeInstalled), String.Concat("After uninstall bundle, should *not* have found Package B payload installed at: ", packageSourceCodeInstalled));
Assert.True(null == this.GetTestRegistryRoot(), "Test registry key should have been removed during uninstall.");
this.Complete();
}
示例4: Burn_UpdateInstalledBundle
public void Burn_UpdateInstalledBundle()
{
// Build the packages.
string packageA1 = this.GetPackageA().Output;
string packageA2 = this.GetPackageAv2().Output;
// Build the bundles.
string bundleA1 = this.GetBundleA().Output;
string bundleA2 = this.GetBundleAv2().Output;
// Install the v1 bundle.
BundleInstaller installerA1 = new BundleInstaller(this, bundleA1).Install();
// Test that v1 was correctly installed.
Assert.True(MsiVerifier.IsPackageInstalled(packageA1));
Assert.False(MsiVerifier.IsPackageInstalled(packageA2));
// Run the v1 bundle providing an update bundle.
installerA1.Modify(arguments: String.Concat("\"", "-updatebundle:", bundleA2, "\""));
// Test that only v2 packages is installed.
Assert.False(MsiVerifier.IsPackageInstalled(packageA1));
Assert.True(MsiVerifier.IsPackageInstalled(packageA2));
// Attempt to uninstall v2.
BundleInstaller installerA2 = new BundleInstaller(this, bundleA2).Uninstall();
// Test all packages are uninstalled.
Assert.False(MsiVerifier.IsPackageInstalled(packageA1));
Assert.False(MsiVerifier.IsPackageInstalled(packageA2));
Assert.Null(this.GetTestRegistryRoot());
this.Complete();
}