{"id":638,"date":"2008-09-07T02:31:28","date_gmt":"2008-09-07T10:31:28","guid":{"rendered":"http:\/\/www.sapien.com\/blog\/2008\/09\/07\/whats-in-a-manifest\/"},"modified":"2008-09-07T02:31:28","modified_gmt":"2008-09-07T10:31:28","slug":"whats-in-a-manifest","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2008\/09\/07\/whats-in-a-manifest\/","title":{"rendered":"What&#8217;s in a manifest?"},"content":{"rendered":"<p>The last blog entry about script packages and elevation prompted Don Jones to ask if we consider adding a template to PrimalScript or even a manifest builder.  <\/p>\n<p>Truth is, manifests are so simple that this hardly seems necessary. Here is the manifest file I usually use as a template:  <\/p>\n<p><a title=\"ftp:\/\/ftp.sapien.com\/manifest.xml\" href=\"ftp:\/\/ftp.sapien.com\/manifest.xml\">ftp:\/\/ftp.sapien.com\/manifest.xml<\/a>  <\/p>\n<p>There really are only three places to change to adapt this to whatever you do:  <\/p>\n<p>In the assemblyIdentity node you should insert the name of your executable you are planning to create.  <\/p>\n<blockquote>\n<p><font face=\"Courier New\">&lt;assemblyIdentity <br \/>&nbsp;&nbsp;&nbsp; processorArchitecture=&#8221;x86&#8243; <br \/>&nbsp;&nbsp;&nbsp; version=&#8221;5.1.0.0&#8243;<br \/>&nbsp;&nbsp;&nbsp; type=&#8221;win32&#8243;<br \/>&nbsp;&nbsp;&nbsp; name=&#8221;yourexecutablename.exe&#8221;\/&gt;<\/font><\/p>\n<\/blockquote>\n<p>The description node gets brief note what your application is about:<\/p>\n<blockquote>\n<p><font face=\"Courier New\">&lt;description&gt;MANIFEST DESCRIPTION&lt;\/description&gt; <\/font><\/p>\n<\/blockquote>\n<p>Last but not least the requestedExecutionLevel gets the elevation setting your file requires.<br \/>Set the level to &#8220;requireAdministrator&#8221; if you need admin privileges. The application will not execute if that permission level cannot be acquired.<\/p>\n<blockquote>\n<p><font face=\"Courier New\">&lt;requestedExecutionLevel <br \/>&nbsp;&nbsp;&nbsp; level=&#8221;requireAdministrator&#8221; <br \/>&nbsp;&nbsp;&nbsp; uiAccess=&#8221;false&#8221;\/&gt; <\/font><\/p>\n<\/blockquote>\n<p>Other settings for the level attribute are &#8220;AsInvoker&#8221; and &#8220;HighestAvailable&#8221;.<\/p>\n<p>Here is what these values mean:<\/p>\n<p><strong>AsInvoker<\/strong> &#8211; the executable runs with the same privileges the current user has. There will be no UAC prompt and no attempt to elevate. <\/p>\n<p><strong>HighestAvailable<\/strong> &#8211; For Administrators: when run the executable will open a UAC prompt offering the opportunity to run elevated but allowing it to continue to run as a limited user if the user does not know or does not wish to elevate the executable. <br \/>For non-privileged users there is no UAC prompt to elevate. <\/p>\n<p><strong>requireAdministrator<\/strong> &#8211; the executable will cause a UAC elevation prompt offering the opportunity to run elevated. If the user cannot provide credentials for an Administrator account elevation will fail and the executable will not be run.  <\/p>\n<p>As for the rest of the file, just leave it alone. It&#8217;ll be fine. <\/p>\n<p>Maybe we can update the script packager for PrimalScript 2009 to generate the manifest from your settings. Use the comments to let us know. <\/p>\n<p>&nbsp;<\/p>\n<div class=\"wlWriterSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6d741ecd-2976-4b34-bdec-75af6aedee09\" style=\"padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Manifest\" rel=\"tag\">Manifest<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Elevation\" rel=\"tag\">Elevation<\/a>,<a href=\"http:\/\/technorati.com\/tags\/UAC\" rel=\"tag\">UAC<\/a>,<a href=\"http:\/\/technorati.com\/tags\/PrimalScript\" rel=\"tag\">PrimalScript<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The last blog entry about script packages and elevation prompted Don Jones to ask if we consider adding a template to PrimalScript or even a manifest builder. Truth is, manifests are so simple that this hardly seems necessary. Here is the manifest file I usually use as a template: ftp:\/\/ftp.sapien.com\/manifest.xml There really are only three [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2,283,26],"tags":[],"class_list":["post-638","post","type-post","status-publish","format-standard","hentry","category-general","category-howto","category-windows-scripting-news"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=638"}],"version-history":[{"count":0,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/638\/revisions"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=638"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}