public static void CheckWrongManifestContents()
{
if (Arguments.ProjectType != ProjectType.ClickOnce)
return;
string xml = File.ReadAllText(Paths.ManifestFile);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
Dictionary<string, string> properties = PropertiesHelper.ParseFromXml(doc);
Dictionary<string, string> required = new Dictionary<string, string>();
Dictionary<string, string> allowed = new Dictionary<string, string>();
required.Add("/asmv1:assembly[@manifestVersion]", "1.0");
required.Add("/asmv1:assembly/assemblyIdentity[@version]", "1.0.0.0");
required.Add("/asmv1:assembly/assemblyIdentity[@name]", "{0}.app".Display(Arguments.AssemblyName));
required.Add("/asmv1:assembly/trustInfo/security/requestedPrivileges/requestedExecutionLevel[@level]", "asInvoker");
required.Add("/asmv1:assembly/trustInfo/security/requestedPrivileges/requestedExecutionLevel[@uiAccess]", "false");
required.Add("/asmv1:assembly/trustInfo/security/applicationRequestMinimum/defaultAssemblyRequest[@permissionSetReference]", "Custom");
required.Add("/asmv1:assembly/trustInfo/security/applicationRequestMinimum/PermissionSet[@class]", "System.Security.PermissionSet");
required.Add("/asmv1:assembly/trustInfo/security/applicationRequestMinimum/PermissionSet[@version]", "1");
required.Add("/asmv1:assembly/trustInfo/security/applicationRequestMinimum/PermissionSet[@ID]", "Custom");
required.Add("/asmv1:assembly/trustInfo/security/applicationRequestMinimum/PermissionSet[@SameSite]", "site");
required.Add("/asmv1:assembly/trustInfo/security/applicationRequestMinimum/PermissionSet[@Unrestricted]", "true");
allowed.Add("/asmv1:assembly/compatibility/application", String.Empty);
string description;
if (ValidationHelper.CheckProperties(
properties,
required,
allowed,
out description))
return;
RaiseError.WrongManifestContents(description);
}