需要在app.manifest中测试<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
。
我需要确定,该应用程序将具有管理员权限。
需要用C#.NET编写的NUnit场景。
答案 0 :(得分:2)
需要完成你所做的事情,我最终开发了以下内容,因为你的“只需阅读xml”方法。请注意,为了使其正常工作,我还必须更改我的testsettings 文件,以手动部署app.manifest文件,以便它可以在那里阅读。
public TestContext TestContext { get; set; }
[TestMethod]
public void Proper_Permissions_Set_In_app_manifest()
{
// Arrange
var expected = "requireAdministrator";
using (StreamReader reader = new StreamReader(Path.Combine(TestContext.TestDeploymentDir, "app.manifest")))
{
var doc = XDocument.Load(reader.BaseStream);
var node = doc.Descendants("{urn:schemas-microsoft-com:asm.v3}requestedExecutionLevel").First();
var attribute = node.Attribute("level");
// Act
var actual = attribute.Value;
// Assert
Assert.AreEqual(expected, actual);
}
}
我希望这有助于其他人...
答案 1 :(得分:0)
抱歉,您无法使用NUnit执行此类测试。
NUnit对类执行单元测试,而不是对可执行文件执行单元测试。虽然没有什么可以测试你的情况。您在app.manifest中的声明授予应用程序只能以UAC处于活动状态的最高权限执行。
如果你不相信我,请自己尝试。将UAC设置为不同级别(Windows 7)或切换它(Vista)并查看!