如何在 Visual Studio 2015 中覆盖 Cordova 应用程序的 .projitems 文件

How to Override .projitems-files of a Cordova App in Visual Studio 2015

我在 Visual Studio 2015 年建立了一个 "Tools for Apache Cordova"-项目。我有几个针对 Windows 平台的覆盖。为此,我在文件夹 res/native/windows 中放置了一些 appxmanifest 文件。构建应用程序时,这些文件会复制到输出目录并使用而不是默认文件。

然后我对以下文件进行了同样的尝试:

CordovaApp.projitems 被正确复制和使用,就像 appxmanifest 文件一样。但似乎没有复制和使用 CordovaAppDebug 或 CordovaAppRelease(取决于构建)。相反,它使用一些默认文件。

我真的想用另一个证书签署我的应用程序。证书在 CordovaAppDebug.projitems 和 -Release.projitems 文件中指定。但是由于从未使用过这些文件,VS 使用默认证书构建应用程序。

我已经找到了解决方法,但有点令人困惑: 我可以将证书设置添加到 CordovaApp.projitems 文件中。似乎在该文件中所做的设置将覆盖在调试或发布中指定的设置。烦人的部分是,它仍然创建并复制默认值 CordovaApp.pfx - 即使它没有被使用。

一些问题:

这些文件由Cordova自己管理,不能直接修改。但是,它们的生成方式是通过最新版本的 Cordova 中的一项新功能。

你想为你描述的场景做的实际上是在项目的根目录中放置一个 build.json 文件,其中包含以下内容:

{
   "windows": {
     "debug": {
        "packageCertificateKeyFile": "Certificate-Debug.pfx"
     },
     "release": {
        "packageCertificateKeyFile": "Certificate-Release.pfx"
     }
   }
}

您还可以为证书文件指定 "publisherId" 以及“packageThumbprint”。

此文件的支持已在 Android 中可用了一段时间,Cordova 5.3.3 实际上也添加了对 iOS 的支持。