我们要求为平板电脑创建多个Windows 8应用。有一个通用的解决方案,通过将不同的资源传递给相同的代码来创建新闻应用程序。 对于Mobile来说,这是一个蛋糕行 - 使用Microsoft.Build.Evaluation.Project类来获取xap文件。
但对于Surface,从代码构建不会提供直接的appx输出,而使用MSBuild构建则会将appx作为输出。
我尝试了几种方法来避免从C#调用MSBuild(通过创建命令进程),比如创建一个zip文件 - myapp.appx - 然后使用this c++ code对其进行签名。由于外部参考,它没有锻炼,我放弃了。
然后我尝试通过在C#中创建命令进程来使用SignTool.exe。那太失败了。
所以,我想知道是否有任何方法可以在没有MSBuild的情况下直接从C#构建appx。
我试图避免使用MSBuild的原因是为了从构建过程中获取状态,Microsoft.Build.Evaluation.Project.Build()提供了该状态。
答案 0 :(得分:1)
首先尝试将pfx密钥添加到项目中,然后再次通过Microsoft.Build.Evaluation.Project.Build()尝试构建。从我读到的内容中需要pfx: 请参阅Candy的答案:
MSBuild target to create the .appx package
那么诀窍就是使用SignTool首先获取pfx并使用该pfx更新项目,但首先看看上面是否有效。