vs2017編譯項目報錯,錯誤如下:

解決方案將工具換成2017版本就可以了,操作如下項目右鍵選擇屬性

平台工具集下拉選擇Visual Studio 2017(v141)

問題2
打包出現錯誤:APPX0108指定證書已過期,要求續訂證書(忘記截圖了)
這時候會有提示去這個網址:https://docs.microsoft.com/zh-cn/previous-versions/br230260(v=vs.110),按照續訂證書的操作就可以了
續訂證書
Visual Studio 生成的默認證書將在一年后的證書創建日期到期。在證書過期之前,必須使用應用程序清單設計器重新生成證書,或如前面的過程所述提供不同的有效證書。
續訂證書
-
在**“解決方案資源管理器”中,打開 .appxmanifest 文件的快捷菜單,選擇“打開方式”,然后選擇“應用程序清單設計器”**。
-
在**“應用程序清單設計器”中,選擇“打包”選項卡,然后選擇“選擇證書”**按鈕。
-
在**“選擇證書”對話框中,展開“配置證書”列表,然后選擇“創建測試證書”**。
-
在**“創建測試證書”對話框中,單擊“確定”**按鈕。
Visual Studio 會重新生成該證書,它具有新的到期日期。



附上文字說明(l鏈接:https://docs.microsoft.com/zh-cn/previous-versions/br230260(v=vs.110))
對應用程序包簽名(Windows 應用商店應用程序)
默認情況下,Visual Studio 生成的所有應用程序包都使用測試證書進行簽名。在創建包時,Visual Studio 將生成包括簽名包本身的文件夾。該文件夾中包括的證書 (.cer) 文件包含用於對包進行簽名的公鑰。在安裝應用程序包之前,必須在計算機上安裝此密鑰。
生成測試證書
在創建項目時,會生成證書文件 (.pfx) 並將其添加到項目中。
證書的“主題”字段設置為源清單 (.appxmanifest) 文件的 Identity 元素的 Publisher 特性。
-
如果創建本地包,則 Publisher 特性的默認值為您的用戶名。
-
如果為 Windows 應用商店創建包或將您的應用程序與其關聯,則在包創建期間登錄時,Publisher 特性將設置為從 應用商店的開發人員帳戶中獲取的 Publisher ID。
證書創建過程還會向項目文件中添加屬性:
<PackageCertificateKeyFile> RisingStar_TemporaryKey.pfx </PackageCertificateKeyFile>
PackageCertificateKeyFile 的值是源證書本身的相對路徑或完整路徑。
如果缺少證書,則它在從**“存儲”**菜單創建包時創建,而不是在命令提示符中創建包時創建。在 Visual Studio 創建證書時,會設置以下屬性的值:
-
**“基本約束”**擴展的值設置為 Subject Type=End Entity。
備注
基本約束擴展標識證書的主體是否為證書頒發機構 (CA)。此擴展還定義包括此證書的有效證書路徑的最大深度。“基本約束”屬性指定認證的公鑰是否可以驗證證書簽名。
-
“增強型密鑰用法”(EKU) 擴展的值將設置為**“代碼簽名”**。
證書在創建之日起一年內有效。有關如何續訂證書的信息,請參見續訂證書。
提示
如果在簽名過程中出現類似於“指定的證書無效,因為它已過期或有其他發行版”的錯誤,請使用清單設計器創建一個測試證書來替換舊證書。
驗證證書
在打包過程中,Visual Studio 會通過以下方式驗證指定的證書:
-
驗證**“基本約束”**擴展是否存在以及它的值,該值必須是 Subject Type=End Entity 或未指定。
-
驗證**“增強的鍵用法”屬性的值,這必須包含“代碼簽名”,也可以包含“生存期簽名”**。禁止任何其他 EKU。
-
驗證**“KeyUsage (KU)”屬性的值,該值必須是“Unset”或“DigitalSignature”**。
-
驗證私鑰是否存在。
-
驗證證書是否處於活動狀態、尚未過期並且未被撤消。
在某些情況下,您可能需要更好地控制使用的證書以及對證書運行的驗證檢查。MSBuild 屬性 EnableSigningChecks 可控制執行上述哪些證書檢查。如果將該屬性設置為 True(默認值),則 Visual Studio 會運行所有檢查。如果將該屬性設置為 False,則 Visual Studio 將僅執行下列任務:
-
驗證私鑰是否存在。
-
驗證**“增強型密鑰用法”屬性的值是否包含“代碼簽名”**。
-
驗證證書是否處於活動狀態、尚未過期並且未被撤消。
備注
當 EnableSignignChecks 設置為 False 時,PowerShell 腳本可能不起作用,因為自定義證書可能不符合該腳本安裝應用程序包所需的所有規則。有關更多信息,請參見本地共享應用程序包(Windows 應用商店應用程序)。
選擇備用證書
Visual Studio 會在創建項目時自動創建一個證書,但你也可以創建自己的證書或使用現有證書對包簽名。
創建或使用備用證書
-
在**“解決方案資源管理器”中,打開 .appxmanifest 文件的快捷菜單,選擇“打開方式”,然后選擇“應用程序清單設計器”**。
-
在**“應用程序清單設計器”中,選擇“打包”選項卡,然后選擇“選擇證書”**按鈕。
-
在**“選擇證書”對話框中,展開“配置證書”**列表,然后選擇以下選項之一:
-
從證書存儲中選取
從操作系統的證書存儲中選取Personal證書之一。 -
從文件中選擇
從文件系統中選取現有證書文件。 -
創建測試證書
使用所選擇的Publisher ID 創建證書。還可以創建密碼。
-
無論選擇哪個選項,證書文件都會添加到項目中,並相應地更新 PackageCertificateThumbprint 和 PackageCertificateKeyFile 項目屬性。
備注
如果在簽名過程中出現類似於“指定的證書無效,因為它已過期或有其他發行版”的錯誤,請使用清單設計器創建一個自定義證書來替換舊證書。
續訂證書
Visual Studio 生成的默認證書將在一年后的證書創建日期到期。在證書過期之前,必須使用應用程序清單設計器重新生成證書,或如前面的過程所述提供不同的有效證書。
續訂證書
-
在**“解決方案資源管理器”中,打開 .appxmanifest 文件的快捷菜單,選擇“打開方式”,然后選擇“應用程序清單設計器”**。
-
在**“應用程序清單設計器”中,選擇“打包”選項卡,然后選擇“選擇證書”**按鈕。
-
在**“選擇證書”對話框中,展開“配置證書”列表,然后選擇“創建測試證書”**。
-
在**“創建測試證書”對話框中,單擊“確定”**按鈕。
Visual Studio 會重新生成該證書,它具有新的到期日期。
刪除或導出證書
您可能需要刪除或導出已過期或者已被破壞、損壞或被另一個證書替換的證書。有關如何刪除或導出證書的信息,請參見如何使用證書控制台。
修改已安裝的應用程序
如果修改已安裝程序包中的任何文件,簽名驗證可能會阻止該應用程序啟動。若要修改程序包,請使用開發人員許可證在原始的源文件中進行更改,然后重新部署已修改的程序包。有關開發人員許可證的詳細信息,請參見獲取開發人員許可證(Windows 應用商店應用程序)。
