.NET for Windows Store应用程序似乎不支持Thread.Sleep.
例如,这个
System.Threading.Thread.Sleep(1000);
Run Code Online (Sandbox Code Playgroud)
将在针对任何.NET Framework(2.0,3.5,4.0,4.5)进行编译时进行编译,但在针对Windows应用商店应用程序(或者同时针对4.5和存储的可移植类库)中进行编译时不会编译.
System.Threading.Thread仍然存在,它只是没有Sleep方法.
我需要在我的应用程序中延迟几秒钟,是否有合适的替代品?
编辑为什么需要延迟:我的应用程序是一个游戏,延迟是让它看起来像计算机对手正在"思考"他的下一步行动.该方法已被异步调用(主线程未被阻止),我只想减慢响应时间.
当我尝试调试我的Windows 8应用程序并且已经在另一个用户帐户上安装了一个副本时,我一直在遇到这个问题:
DEP0700:应用程序注册失败.另一位用户已经安装了此应用程序的打包版本.未打包的版本无法取代此版本.冲突的包是{{{PackageName}}},它由CN = {{{Certificate Stuff}}}发布.(0x80073cf9)
有时我可以登录或要求其他人登录计算机并卸载应用程序.或者,我可以更改应用程序名称/ ID,但是一个并不总是可行而另一个是有风险的(我不想将已更改的应用程序ID签入源代码控制).
必须有一些方法来卸载它.也许是PowerShell脚本?
powershell windows-8 windows-runtime windows-store windows-store-apps
我很好奇是否有办法打包Windows 8 Metro应用程序,以便在安装了Windows 8开发人员预览版的情况下将其分发给其他人?能够允许某人只是下载和安装,而不是要求他们安装VS'11 Preview并自行编译代码以测试/使用我构建的Windows 8 Metro应用程序,这将是一件好事.
有没有办法分发已编译的Windows 8 Metro应用程序供其他人测试/使用,因为Windows应用商店尚未上线?
即使在Windows Store存在之后,这对于在非开发计算机上测试Metro应用程序也很有用.
windows-8 windows-runtime windows-store visual-studio-2012 sideloading
虽然我可以使用以下代码获得程序集版本
var assembly = typeof(App).GetTypeInfo().Assembly;
var assemblyVersion = assembly.GetCustomAttribute<AssemblyFileVersionAttribute>().Version;
Run Code Online (Sandbox Code Playgroud)
我想从Package.appxmanifest
本例1.0.0.4中检索版本
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
<Identity Name="zzz" Publisher="CN=zzz" Version="1.0.0.4" />
Run Code Online (Sandbox Code Playgroud)
我希望能够访问Windows.ApplicationModel
,但这不适合我
我有一个Java 9应用程序,我正在尝试为Windows应用商店打包.奇怪的是,当我直接运行exe-launcher时,它按预期工作,但是当我通过APPX包运行启动器时,我得到以下奇怪的错误:
Exception in thread "Swing-Shell" java.lang.InternalError: Could not
initialize COM: HRESULT=0x80010106
at java.desktop/sun.awt.shell.Win32ShellFolderManager2.initializeCom(Native Method)
at java.desktop/sun.awt.shell.Win32ShellFolderManager2$ComInvoker$1.run(Unknown Source at java.base/java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
HRESULT=0x80010106
意味着RPC_E_CHANGED_MODE
我猜意味着COM以某种方式已经在MTA模式初始化.但为什么这只是Windows Bridge沙箱中的一个问题?pre-initialize
出于某种原因,Windows桥以某种方式某种程度上是COM吗?
我不确定这是Java 9问题,还是Desktop Bridge问题,或两者兼而有之.有没有人对如何确定问题的原因或解决方法有任何想法?
我已经制作了一个最小的示例项目来重现该问题
应用程序在直接执行时有效,但在通过APPX启动程序执行时无效.为什么?
我有以下代码:
public MainPage()
{
this.InitializeComponent();
this.ManipulationStarting += MainPage_ManipulationStarting;
this.ManipulationStarted += MainPage_ManipulationStarted;
this.ManipulationInertiaStarting += MainPage_ManipulationInertiaStarting;
this.ManipulationDelta += MainPage_ManipulationDelta;
this.ManipulationCompleted += MainPage_ManipulationCompleted;
}
void MainPage_ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationStarting");
}
void MainPage_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationStarted");
}
void MainPage_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationInertiaStarting");
}
void MainPage_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationDelta");
}
void MainPage_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationCompleted");
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用Manipulation事件.你能描述一下如何处理向上,向下,向左和向右滑动的手势吗?
我有一个用Java编写的程序,由安装程序包装.它需要Java 1.7.如果我使用"Windows App Certification"运行认证,则会针对已安装Java 1.7的情况发出一个警告.但是,如果未安装Java 1.7,则认证将停止,因为安装程序将要求进行Java安装.
有人知道是否可以将此Java应用程序添加到Windows应用商店?
不幸的是,我没有找到任何相关信息.我可以去认证,但如果微软不接受它,那就不值得了.
看完电话和电子邮件后,似乎连微软本身似乎也无法回答这个问题:-(
这是一个接口,取决于我尝试将我维护的事件聚合器MemBus移植到Windows运行时世界:
public interface ISubscriber
{
IDisposable Subscribe<M>(Action<M> subscription);
#if WINRT
[Windows.Foundation.Metadata.DefaultOverload]
#endif
IDisposable Subscribe(object subscriber);
IObservable<M> Observe<M>();
}
Run Code Online (Sandbox Code Playgroud)
我得到的是编译器错误:
"错误WME1031:'
MemBus.ISubscriber.Subscribe<M>(System.Action<M>)
'是一种通用方法.Windows运行时方法不能通用."
我只怀疑为什么会这样,如果有人可以澄清,请做.
我的主要问题是:在将代码移植到Windows运行时时,我们应该如何处理这个问题?
泛型有很多更高级别的功能.实际上,我们在Windows运行时使用泛型类(例如List<T>
).RT组件应该如何公开泛型类型,如果不是,它是唯一可用的方法,可以回到编写.NET 1.1代码的方式,即对象输入,对象输出和执行转换?
我正在尝试学习如何检索Microsoft Store ID密钥.为此,我按照Microsoft Universal Samples中提供的示例进行了操作.我尝试使用Business to Business场景(场景7).我已经发布了一个示例App并在Azure Active Directory中注册了该应用程序.问题是我不知道我应该在getCustomerCollectionsIdAsync/getCustomerPurchaseIdAsync函数中作为publisherUserId参数发送什么值.我尝试发送当前用户(客户电子邮件)的电子邮件,该电子邮件仅检索空结果(Microsoft Store ID密钥).
function getCustomerCollectionsId() {
var token = getTokenFromAzureOAuthAsync().done(function (aadToken) {
if (aadToken) {
storeContext.getCustomerCollectionsIdAsync(aadToken, "***@hotmail.com")//"kim@example.com"
.done(function (result) {
output.innerText = result;
if (!result) {
WinJS.log && WinJS.log("getCustomerCollectionsIdAsync failed.", "sample", "error");
}
});
}
});
}
function getCustomerPurchaseId() {
var token = getTokenFromAzureOAuthAsync().done(function (aadToken) {
if (aadToken) {
storeContext.getCustomerPurchaseIdAsync(aadToken, "***@hotmail.com")//"kim@example.com"
.done(function (result) {
output.innerText = result;
if (!result) {
WinJS.log && WinJS.log("getCustomerPurchaseIdAsync failed.", "sample", "error");
}
});
} …
Run Code Online (Sandbox Code Playgroud) 我想了解一下Windows Store和APPX包的内部情况.例如,package.appxmanifest有一个<Identity>
包含包名,发布者和版本属性的元素
<Identity
Name="MyCompany.MyGreatApp"
Publisher="CN=B408A06D-44F7-4860-A12E-644DD44FA743"
Version="1.0.0.3" />
Run Code Online (Sandbox Code Playgroud)
显然,当我在VS2013中打开此清单并转到Packaging选项卡时,它会显示一个只读的"Package Family Name"字段,它是包名称,下划线和看起来像发布者字符串的奇怪哈希的串联.
MyCompany.MyGreatApp_f08ys7xx9zb3y
Run Code Online (Sandbox Code Playgroud)
如何计算此哈希值(也称为PublisherId)?另请参见PackageId类或PACKAGE_ID结构.
以下是您渴望密码分析师的一些示例值.它是13个小写字母和数字,因此近似"质量"是67位.谢谢!
8wekyb3d8bbwe CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
amge560j0aq9g CN=C357A519-CEE3-4675-9EF4-44DE1D99A5D6
a2xxwqz7shah6 CN=07AACB4D-E1D7-4606-AF0F-77713A7C52F6
cw5n1h2txyewy CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
54ggd3ev8bvz6 CN=2180B9A4-DDFD-4BFD-8D7E-EADC9C394EF5
azstdzfk4mfqj CN=246910D1-A42D-4A04-8CF1-0C2A5CD42D4D
rxzpp8adhbvh8 CN=7882B094-0135-443F-8362-164AA239F2A0
pwh22gvzcj20c CN=9C2E3884-8027-4E71-97C7-BB7731A649A4
q4d96b2w5wcc2 CN=DCD4AC3C-C7E0-46FF-8387-51FDC8CBC467
r6rtpscs7gwyg CN=54157592-46DE-47CD-AF04-3B89DE46E29B
8xx8rvfyw5nnt CN=6E08453F-9BA7-4311-999C-D22FBA2FB1B8
kzf8qxf38zg5c CN=Skype Software Sarl, O=Microsoft Corporation, L=Luxembourg, S=Luxembourg, C=LU
a76a11dkgb644 CN=40886CD1-D5C5-48D6-B914-AB6E72010FFC
6bhtb546zcxnj CN=BBC567E9-A52C-43A3-A890-F8B17D68310E
46hhcags7zat8 CN=ABF01D82-FF53-447D-B7E8-61B6F2105F68
pd2za7f9waemw CN=B408A06D-44F7-4860-A12E-644DD44FA740
h0ed56e8a88dc CN=B408A06D-44F7-4860-A12E-644DD44FA741
wcvtzcf7freyj CN=B408A06D-44F7-4860-A12E-644DD44FA742
f08ys7xx9zb3y CN=B408A06D-44F7-4860-A12E-644DD44FA743 …
Run Code Online (Sandbox Code Playgroud) windows-store ×10
c# ×4
.net ×2
uwp ×2
windows-8 ×2
appx ×1
appxmanifest ×1
java ×1
java-9 ×1
package ×1
powershell ×1
sideloading ×1
windows ×1
xaml ×1