public void Run()
        {
            EnsureDeviceConnected();

            var project     = MSBuild.NewProject(testDirectory);
            var projectFile = Path.Combine(tempDirectory, "test.csproj");

            project.Save(projectFile);
            MSBuild.Restore(projectFile);
            MSBuild.Build(projectFile, "Run");
        }
        public void SignAndroidPackage_UpdateProperties()
        {
            string versionCode = "1234",
                   versionName = "1.2.3.4",
                   packageName = "com.mycompany.myapp";

            var versionCodeElement = MSBuild.NewElement("AndroidVersionCode").WithValue(versionCode);
            var versionNameElement = MSBuild.NewElement("AndroidVersionName").WithValue(versionName);
            var packageNameElement = MSBuild.NewElement("AndroidPackageName").WithValue(packageName);

            var project       = MSBuild.NewProject(testDirectory);
            var propertyGroup = MSBuild.NewElement("PropertyGroup");

            propertyGroup.Add(versionCodeElement);
            propertyGroup.Add(versionNameElement);
            propertyGroup.Add(packageNameElement);
            project.AddFirst(propertyGroup);

            var projectFile = Path.Combine(tempDirectory, "test.csproj");

            project.Save(projectFile);
            MSBuild.Restore(projectFile);
            MSBuild.Build(projectFile, "SignAndroidPackage");

            versionCodeElement.Value = versionCode = "99";
            versionNameElement.Value = versionName = "2.0";
            packageNameElement.Value = packageName = "com.mycompany.myapp2";
            project.Save(projectFile);
            MSBuild.Build(projectFile, "SignAndroidPackage");

            var manifestPath = Path.Combine(objDirectory, "AndroidManifest.xml");

            FileAssert.Exists(manifestPath);
            var ns       = AndroidManifest.AndroidNamespace.Namespace;
            var manifest = AndroidManifest.Read(manifestPath);

            Assert.AreEqual(versionCode, manifest.Document.Attribute(ns + "versionCode")?.Value, "versionCode should match");
            Assert.AreEqual(versionName, manifest.Document.Attribute(ns + "versionName")?.Value, "versionName should match");
            Assert.AreEqual(packageName, manifest.Document.Attribute("package")?.Value, "package should match");
        }