我目前正在公司环境中使用Windows 8应用程序的侧载.我们的客户很可能会在基于x86的平板电脑上运行Windows 8 Pro.只要在目标设备上注册了开发人员帐户,使用PowerShell部署应用程序(相当)就可以正常工作.如果不是,则在应用程序启动时会发生以下错误:
这个程序无法打开
~AppName~有问题.有关修复或重新安装,请与系统管理员联系.
我们的CA的根证书安装在设备上,并且正确设置了允许所有可信应用程序安装组策略设置.该设备位于(实验)域中.在Windows 8企业版上,它实际上就像一个魅力.
关于TechNet上的这篇文章,对于除Enterprise之外的任何其他Windows版本的侧载,需要"sideloading产品激活密钥".我搜索了关于这样一个密钥的更多信息,但我没有找到任何东西.
所以我的问题是:什么是"侧载产品激活密钥",谁生成它以及如何激活/输入它?或者这句话是否意味着我们需要选择Windows 8企业版?
在Azure上的SQL Server(2008 R2)中,有一个包含大量地理Points(纬度/经度)的表:
CREATE TABLE MyPoints
(
Region uniqueidentifier NOT NULL,
Number int NOT NULL,
Position geography NOT NULL,
CONSTRAINT PK_MyPoints PRIMARY KEY(Region, Number)
)
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个Polygon从这一点来确定,我的哪些商店位于由点定义的区域.
是否有一种原生的快速方法从T-SQL中的给定点构建多边形?我找到的解决方案是使用STGeomFromText/ STGeomFomWKB方法创建一个多边形,这对我来说似乎非常麻烦和缓慢.
就像是:
SET @POLY = geometry::STPolyFromPoints(SELECT Position FROM MyPoints)
Run Code Online (Sandbox Code Playgroud) 今天我在微软的下载中心偶然发现了CE 2013的Application Builder.截至描述,使用此包我应该能够develop apps that target Windows Embedded Compact 2013使用Visual Studio 2012.
下载并安装Application Builder后,我发现了新的框架程序集C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsEmbeddedCompact\v3.9,但是在Visual Studio 2012中没有针对Embedded Compact 2013的项目模板.
我试图创建一个空白的WinForms或WPF项目并将其重新定位到3.9,但这似乎也不可能.没有可以安装的在线模板.
如何使用Visual Studio 2012创建CF 3.9应用程序?
compact-framework windows-ce windows-embedded-compact visual-studio-2012
借助 .NET 5,我们可以修剪我们的项目以减少其占用空间。如果我们知道我们将Type通过反射访问,我们可以将其标记为动态访问:
public void DoSomethingReflective<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>();
Run Code Online (Sandbox Code Playgroud)
但是还有一种方法可以将整个程序集标记为动态访问吗?
public void DoSomethingReflective(Assembly assembly);
Run Code Online (Sandbox Code Playgroud) 我想为Windows 8 Embedded Standard(Release Preview)创建一个自定义shell(WinForms),允许用户运行,安装或更新应用程序(可以是桌面和/或城域应用程序).
因此,我explorer.exe在注册表中替换了自定义shell的路径,这非常有效.当我尝试使用IApplicationActivationManager运行metro风格的应用程序时(请参阅此处的实现细节),我收到以下错误消息:
应用程序管理器需要激活应用程序,但未运行.(HRESULT异常:0x80270257)
事件日志不包含任何其他信息(既不在Application也不在内TWinUI).
Metro风格的应用程序在explorer.exe用作shell 时运行良好.我还没有找到一个流程或服务,我可以简单地开始允许执行metro应用程序(我试图运行WWAHost.exe,但这失败并显示错误消息The system cannot execute the specified program.).explorer.exe手动启动不会改变任何东西.
我们为Windows窗体UI渲染引擎开发了一个小型测试套件,可以在自动运行测试用例的同时测量性能并检测内存泄漏.现在我们也想检查手柄泄漏.在桌面平台上,我们可以使用以下代码:
[DllImport("User32")]
private extern static int GetGuiResources(IntPtr hProcess, int uiFlags);
using (var process = Process.GetCurrentProcess())
{
var gdiHandles = GetGuiResources(process.Handle, 0);
var userHandles = GetGuiResources(process.Handle, 1);
}
Run Code Online (Sandbox Code Playgroud)
此方法似乎在Windows Mobile中不可用.是否有另一种方法可以在Windows Mobile/CE上以编程方式确定这些值?
我们正在开发要通过Windows Store for Business发布的UWP LOB应用程序(构建目标> = 1607)。UWP应用程序参考:
System.Private.Reflection.Extensibility.dll版本4.0.0.0。该应用程序将以调试和发布(通过.NET本机编译)模式在本地编译和运行。将上载到.appxuploadWindows应用商店时,生成的应用程序将引发异常:
System.IO.FileNotFoundException:无法加载文件或程序集“ System.Private.Reflection.Extensibility,版本= 4.0.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。文件名称:Internal.Reflection.Extensions.NonPortable.PropertyPolicies.GetInheritedMemberInfo(PropertyInfo底层MemberInfo,类型为反射类型)位于System.Private.Reflection.Extensibility,版本= 4.0.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a。 System.Collections.Generic.LowLevelList1.InsertRange(Int32 index,IEnumerable`1 collection)处的Extensions.NonPortable.MemberEnumerator.d__11.MoveNext()在System.Reflection.TypeExtensions.GetMembers(Int32 index,IEnumerable`1 collection)(Type type,Object nameFilterOrAnyName,BindingFlags bindingAttr) 。反射。
当.appxbundle从中提取.appxupload并通过PowerShell将包侧载时,我可以重现此问题。请注意,.NET程序集.appxbundle内的.appxupload,因此未编译为.NET本机。
我认为Windows应用商店应该执行此任务,但实际上不执行此任务(如您从上面的堆栈跟踪中所看到的)-也许是由于事实,我们在UWP应用中使用了Desktop Bridge功能。
在搜索时System.Private.Reflection.Extensibility.dll,似乎该程序集与.NET Native和构建链相关(因为.NET Native nuget包和MSBuild随附)。
所以我的问题是:为什么应用程序无法加载程序集(但不是在调试/发布模式下)?是否System.Reflection.TypeExtensions希望该应用程序使用可在本地实际运行的.NET Native进行编译?
我试过了:
.appxbundle使用.NET Native编译的文件(商店不接受)Microsoft.NETCore.UniversalWindowsPlatform软件包的不同版本
(包括.NET Native软件包)System.Reflection.TypeExtensions到4.4.wapproj用于部署的包装器(问题保持不变)我们在几台设备(摩托罗拉,霍尼韦尔等)上运行我们用于Windows Mobile/CE的通用移动应用程序,并希望自动检测我们正在运行的设备.目前,我们需要配置要使用的设备服务(例如,用于扫描),但我们希望自动化该过程.
是否有可靠的方法来确定Windows Mobile/CE上的设备制造商和型号(例如"Motorola MC3190"或"Honeywell Dolphin 6100")?
我们已经尝试过的:
SystemParametersInfo(在某些设备上抛出异常)SystemParametersInfo它)我不想通过分析序列号,文件系统布局或CPU来猜测设备类型.
我目前正在为Windows 8消费者预览编写一个C#metro app,它从基于REST的Web服务中获取一些数据.我希望应用程序使用当前用户的Windows Live帐户对服务进行身份验证.因此,我将Windows Live SDK添加到我的解决方案中,并将文档中的以下代码段粘贴到我的登录视图中:
LiveAuthClient liveClient = new LiveAuthClient();
LiveLoginResult loginResult = await liveClient.Login(new string[] { "wl.signin" });
Run Code Online (Sandbox Code Playgroud)
登录调用成功后,我想将加密AuthenticationToken的LiveConnectSessionvia SSL传递给我的webservice,它应该解密令牌并读取它感兴趣的信息(这就是文档对这种SSO场景的建议).但遗憾的AuthenticationToken是,会议的财产总是如此null.我在这里错过了什么吗?
c# ×4
windows-8 ×2
windows-ce ×2
.net ×1
.net-native ×1
deployment ×1
gdi ×1
geography ×1
handle-leak ×1
live ×1
msbuild ×1
nuget ×1
reflection ×1
sideloading ×1
sql-server ×1
t-sql ×1
uwp ×1