標籤: 網頁設計公司

  • 巴基斯坦洩漏不明氣體 至少14死逾600人不適

    摘錄自2020年2月19日星島日報報導

    巴基斯坦南部信德省卡拉奇洩漏不明氣體,至少14人死亡,約650人不適。

    事發在本月16日晚上,卡拉奇洩漏不明氣體,導致數百人身體不適,湧入醫院求診。有市民表示,當晚看到空氣中瀰漫着煙霧,吸入後立即無法呼吸和想嘔吐,有人就出現心跳加速、胸口痛、眼睛痕癢等癥狀。而事故發生後,不少人都帶上口罩,希望避免吸入氣體,有人吸入洩漏氣體後不久就死亡。

    當局表示,目前仍無法判斷氣體的種類和洩漏來源,初步無人為破壞跡象,目前將居民暫時撤離至安全地點。巴基斯坦軍方也派出化學兵前往當地進行進一步探測。

    另外,該區周二有數百人上街集會以示不滿,要求當局盡快查明氣體來源。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    ※專營大陸快遞台灣服務

    台灣快遞大陸的貨運公司有哪些呢?

  • Google在Nature上發表的關於量子計算的最新進展的論文(Quantum supremacy using a programmable superconducting processor 譯)— 附論文

    Google在Nature上發表的關於量子計算的最新進展的論文(Quantum supremacy using a programmable superconducting processor 譯)— 附論文

    Google 的研究人員於2019年10月23號發表在Nature自然》《科學《細胞》雜誌都是國際頂級期刊,貌似在上面發文3篇左右,就可以評院士了)上,關於量子計算方面(基於 Sycamore芯片)的具有里程碑式進展的論文,受到國內外同行及媒體的廣泛關注,包括中科大量子科學家 — 潘建偉及其團隊。特朗普的女兒Ivanka Trump(左一)也發twitter表示祝賀,如下圖:

    Even as Ivanka praised the parties involved in this new quantum computing achievement, a number of social media users appeared critical of her assessment of the Trump administration’s role in this endeavour.

    IBM表示不服,Google不care。下面讓我們逐字逐句來看他們的論文吧,對於爭論的事情,自己下功夫搞清楚。

     

    Quantum supremacy using a programmable superconducting processor

    基於可編程的超導處理器實現的量子霸權 

     相關資源:https://doi.org/10.1038/s41586-019-1666-5

     接收日期:2019年7月20日

     核准日期:2019年9月20日

     在線發布:2019年10月23日

     

    Abstract

    引言

    量子計算機吹牛逼說,對於特定的計算任務,基於量子處理器的計算機,其速度相較於經典處理器呈指數級增長。根本的挑戰在於構建一個能夠在海量的計算空間上運行量子算法的高保真處理器。我們的報告是關於,一個基於53量子比特實現的可編程的超導量子芯片,在253(約1016)的計算狀態空間創建了一個量子態的故事。

    我們用經典模擬驗證了重複實驗測量結果的採樣概率分佈。我們的Sycamore處理器採樣一個量子電路100萬次,大約花了200秒——我們的基準測試表明,同樣的任務最先進的超級計算機大約需要花費10000年。相較於所有已知的經典算法,對於這個特定的計算任務,用實驗實現的量子優越性在速度方面的顯著提升,預示着一個期待已久的計算範式。

     

    Main

    正文

    早在20世紀80年代,有鑒於經典計算機在模擬大型量子系統時的高昂成本,理查德·費曼(Richard Feynman)就提出量子計算機將是解決物理、化學問題的有效工具。將費曼的設想付諸實現,構成了重大的實驗和理論挑戰。

    首先,一個能夠在足夠巨大的計算空間(hibert)進行計算並且以低錯誤率提供量子加速的量子系統,工程上是否可行?其次,我們能否構建一個對於經典計算機很難但是對於量子計算機比較簡單的問題?通過在我們的超導量子處理器上運算這樣的一個基準任務,我們解決了這2個問題。我們的實驗實現了量子優越性,這是全面實現量子計算征程的里程碑。

    在實現里程碑的過程中,我們證明了量子加速在現實世界是可達到的,也沒有被任何未知的物理定律所排除。量子優越性也預示着嘈雜的中型量子(NISQ,筆者:嘈雜意味着不穩定,噪音嚴重)技術時代的到來。我們論證的基準任務,已經立即用於生成可認證的隨機數(S. Aaronson,手稿正則準備中);這個新的計算能力的最初應用領域可能包括優化機器學習、材料科學和化學。然而,實現完全意義的量子計算(例如,Shor的分解算法)仍有待於技術的飛越以製造支持容錯邏輯的量子比特。

    為了達成量子優越性,我們取得了一系列的技術進步,從而為糾錯鋪平了道路。我們研製了可以同時執行跨兩個維度量子矩陣的快速高保真門。我們使用了強大的新工具:交叉熵基準,在組件和系統層面對處理器進行了校準和基準測試。最後,為了精確預測整個系統的性能,我們使用了組件級的保真度,從而進一步證明當擴展到大型系統時量子信息的行為符合預期。

     

    A suitable computational task

    合適的計算任務

    為了證明量子優越性,我們在採樣量子電路的偽隨機輸出任務中,比較我們的量子處理器和最新的經典計算機。隨機電路是基準測試的一個合適選擇,因為它門不具有結構,因此可以有限地保證計算硬度。我們設計的電路通過重複應用單量子和雙量子邏輯運算實現了一組量子的糾纏。採樣量子電路的輸出生成了一串比特串,例如{0000101, 1011100, …}。由於量子干擾的存在,比特串的概率分佈類似於在激光散射中的光干擾產生的強模型的斑點,因此有些比特串比其它的更容易出現。隨着量子比特的數量(寬度)和門循環數量(深度)的增加,概率分佈之經典計算的難度呈指數級增加。

    我們使用稱為交叉熵基準測試的方法來驗證量子處理器是否正常工作,該方法將通過比較實驗觀察的每個比特串的頻率與通過經典計算機的模擬計算得出對應的理想概率。對於給定的電路,我們收集測得的比特串{xi}並且計算線性交叉熵基準的保真度(另請參見),這是我們測得的比特串的模擬概率的平均值:

    FXEBY= 2n<P(xi)>i  ‐ 1

    其中n是量子比特的總數,P(xi) 是為理想的量子電路計算的位串 xi 的概率,並且平均值超過了觀察到的比特串。直觀地講,FXEB和我們採樣高概率的比特串的頻率相關。當量子電路沒有錯誤的時候,其概率分佈呈指數分佈 (請參見),從這個分佈採樣將使得FXEB = 1。另一方面,從均勻分佈採樣將得到:P(xi)i = 1/2,FXEB  = 1。FXEB的值介於0和1之間,表示電路運行時沒有錯誤發生的概率。概率(P(xi) )必須從經典模擬量子電路得到,因此在至高無上的量子優越性上面計算FXEB十分棘手。然而,通過某些簡化的電路,我們可以估計出在寬和深量子電路上滿載運行的處理器的定量保真度。

     我們的目標是通過足夠寬和深的電路實現足夠高的FXEB,這樣經典計算的成本將高的難以承受。這是一個艱巨的任務,因為我們的邏輯門並不完美,我們打算構造的量子態對錯誤也很敏感。在算法運行過程中,單個比特或相位的翻轉將徹底重構斑點圖案並且導致保真度逼近0(請參見)。因此,為了宣稱量子的優越性,我們需要一個能夠以非常低的錯誤率運行程序的量子處理器。

     

    Building a high-fidelity processor

    構建高保真處理器

    我們設計了一個名為“Sycamore”的量子處理器,它由54個特蘭蒙量子比特的二維陣列組成,其中每個量子位可調耦合到一個矩形格子的四個最近的相鄰接點。選擇這個連接是為了與使用表層代碼的糾錯向前兼容。這個設備的一項關鍵性系統進步是它實現了單量子比特和雙量子比特運算的高保真度,不單單是孤立的,而且可以在許多量子比特上同時進行門運算和現實計算。我們接下來討論重點,也請參見。

    在一個超導量子比特里,傳導电子會凝聚成宏觀量子態,這樣電流和電壓會机械地呈現出量子態。我們的處理器使用特蘭蒙量子比特,可以將其視為擁有5-7 G赫茲主頻的非線性超導諧振器。其量子比特被編碼為諧振電路的兩個最低量子本徵態。每個特蘭蒙都有兩個控制器:一個微波驅動器來激發量子比特,以及一個磁通量控制器來調製頻率。每個量子比特被連接到用於讀出量子比特狀態的線性諧振器。如圖1所示,每個量子比特同時通過一個新的可調耦合器連接到其相鄰的量子比特。我們的耦合器設計允許我們快速將量子比特—量子比特耦合從完全關停調整到40 M赫茲。1個量子比特無法正常運轉,所以這個設備用了53個量子比特和86個耦合器。

               圖.1 : Sycamore 處理器

    為了金屬化和約瑟夫森連接,處理器用鋁製造,並使用銦製造兩個硅晶片之間的凸點。芯片用引線粘合到超導電路板上,並在稀釋冰箱中冷卻至20 mK以下,以將環境熱能降低到大大低於量子比特能。處理器通過濾波器和衰減器連接到處於室溫的电子設備,該設備可合成控制信號。使用頻率復用技術可以同時讀取所有量子比特的狀態。我們用兩級低溫放大器來增強信號,該信號被数字化(在1 G赫茲頻率時為8比特)並在室溫下通過数字化實現解復用。為了完全控制量子處理器,我們總共設計了277個數模轉換器(在1G赫茲頻率時為14比特)

     我們通過驅動25納秒的微波脈衝來執行單量子比特門,該微波脈衝會以量子頻率共振,同時關閉量子比特-量子比特耦合。脈衝經過整形,從而最大程度地避免了過渡到更高的特蘭蒙狀態。由於兩級系統缺陷,門的性能會隨頻率產生很大的變化,雜散微波模式會與控制線和讀出諧振器相耦合,量殘餘的雜散耦合於量子比特、磁通噪聲和脈衝失真。有鑒於此,我們優化了單量子比特操作頻率以減免這些錯誤機制。

    我們使用上述交叉熵基準測試協議對單量子比特門的性能進行基準測試,降低到單量子比特級別(n = 1),以測量在單量子比特門期間發生錯誤的概率。在每個量子比特上,我們應用數量可變的m個隨機選擇的門,並在許多序列上測量FXEB的平均值;隨着m的增加,誤差會累積、FXEB的平均值會下降。我們用[1 − e1 /(1 − 1 / D2)] m對該衰減建模,其中e1是Pauli誤差概率。在這種情況下,狀態(希爾伯特)的空間量綱,D = 2n,等於2,它校正了誤差與理想態部分重疊的去極化模型。該過程類似於更典型的隨機基準測試,但支持非Clifford門的集合,並且可以將消退相干誤差與相干控制誤差區分開。然後,我們重複了所有量子比特同時執行單量子比特門的實驗(圖2),而錯誤率僅僅表現出微小的增長,表明我們設備的微波干擾率很低。

             圖.2 : 全系統的 Pauli 和 測量錯誤

    我們通過持續打開20 M赫茲耦合12 納秒,並使相鄰的量子位共振來執行類似iSWAP的兩個量子比特糾纏門,從而允許量子比特可以交換激勵。在此期間,量子比特還經歷了受控相位(CZ)的交互作用,該交互作用來自於更高級別的特蘭蒙。優化每對量子比特的兩個量子比特門限頻率軌跡,是為了減少在優化單量子比特工作頻率時所要考慮的相同錯誤機制。

    為了表徵和量化兩個量子比特門,我們運行了m個周期的兩個量子比特電路,每個周期在每個雙量子比特上都包含一個隨機選擇的單量子比特門,緊跟着固定的兩個量子比特門。通過使用FXEB作為成本函數,我們學習了兩個量子單位的參數(例如iSWAP和CZ交互的數量)。經過這次優化,我們從值為 m 的FXEB的衰變中提取每周期錯誤e2c,並減去兩個單量子比特的錯誤e1來分離出兩個量子比特錯誤e2。我們發現e2的平均值為0.36%。 另外,我們在為整個矩陣同步運行雙量子比特電路的同時重複執行相同的過程。在為諸如,色散漂移和串擾等,考慮影響而更新單一參數后,我們發現e2的平均值為0.62%。

    對於整個實驗,我們在同步操作期間用兩個量子比特元測量每一對,而不是所有對的標準門,生成量子電路。典型的兩個量子比特門是一個全iSWAP,並且擁有1/6的全CZ。絕不使用單獨校準的門來限制演示的通用性。例如,1個量子比特門和任意給定對中的兩個唯一的量子比特門可以組成可控NOT(CNOT)門。高保真“教科書似的門”,例如CZ或iSWAP ,的製作正在緊鑼密鼓地進行。

    最後,我們通過使用標準色散測量對量子比特讀數進行了基準測試。在0和1狀態下的平均測量誤差如圖2a所示。
    我們還通過讓每個量子比特隨機的處於0或1的狀態,然後測量所有量子比特以獲得正確結果的概率,來測量同時運行所有量子比特時的錯誤。我們發現,同時讀出僅僅會導致每個量子比特測量誤差的適度增加。

    找到了單個門的錯誤率和讀數后,我們可以將量子電路的保真度建模為所有門和測量的0錯誤操作概率的乘積。我們最大的隨機量子電路有53個量子比特,1113個單量子比特門,430個雙量子比特門,每個量子比特一個亮度,我們估計其總保真度為0.2%。由於FXEB的不確定度為1 /Ns-√1/ Ns(其中Ns是樣本數),因此這個保真度應該可以通過數百萬次的測量來分辨。我們的模型推測,糾纏越來越大的系統不會引入超出我們在單比特和兩比特級別上測量的誤差之外的其他錯誤源。 在下一節中,我們將了解該假設的成立情況。

     

    Fidelity estimation in the supremacy regime

    優越性的逼真度估算

    我們的偽隨機量子電路生成器的門序列如 圖3 所示。此算法的一個周期由應用於所有量子的單量子(從{√X, √Y, √Z}隨機選擇),緊跟着的成對的量子比特上的兩個量子比特門組成。組成“優越性電路”的門序列旨在最小化為創造一個高糾纏態的電路深度,而這正是計算複雜度和經典硬度所需。

                       圖.3 : 量子優越性電路的控制操作

    儘管我們無法在至高無上的體系中計算FXEB,但是我們可以通過降低電路的複雜度的三個變體來評估它。在“貼片電路”中,我們移除掉了兩個量子比特門的一部分(佔兩個量子比特門總數的一小部分),將電路分割成兩個空間上隔離的,沒有相互作用的量子比特補丁。然後我們用可以輕鬆計算出保真度的補丁的乘積作為總的保真度。在“消除電路”中,我們沿切片僅去除了最初的兩個量子比特門的一小部分,允許補丁之間的糾纏,這在維持了仿真可行性的同時更緊密地模擬了整個實驗。最終,我們也可以運行同我們的優越性電路有着相同門數的全“驗證電路”,但卻與在傳統上容易模擬的多的兩电子門序列有着不同的模式(也請參見)。比較這些三個變體讓我們能夠在接近優越性制度的過程中追蹤系統保真度。

    我們首先檢查補丁版本和刪節版本的驗證電路是否能與多達53量子比特的完整驗證電路產生相同的保真度,如圖4所示。每個數據點,我們通常在10個電路實例中採集 Ns = 5 × 106的總樣本,每個實例的區別僅在於在每個周期中單個量子門的選擇不同。我們也显示FXEB的預測值該值是通過將單量子和雙量子比特門的0錯誤率和測量值相乘而得到的(也請參見)儘管在計算複雜度和糾纏存在巨大差異,這個預測值、補丁及消除的保真度都對應的全電路的保真度吻合的很好。這讓我們對消隱電路可以用於準確估計更為複雜電路的保真度充滿信心。

                    圖.4 : 量子優越性的證明

    保真度仍可以直接被驗證的最大電路有53個量子比特和一個簡化處理過的門電路。100萬個內核以0.8%的保真度對這些隨機電路進行採樣需要花費130秒,相較於單核,量子處理器有百萬倍的加速。

    我們現在繼續對計算最複雜電路進行基準測試,這個只是2個比特門的重排列。在圖4中,我們显示了通過不斷增加深度,針對53量子比特的全優越性電路的補丁版和消隱版本測得的FXEB。對於有53個量子比特和20個周期的最大電路,我們在10個電路實例上搜集了 Ns = 30 × 106

    樣本,對於消隱電路得到的FXEB = (2.24±0.21)×10−3。基於5σ的置信度,我們斷定在量子處理器上運行這些電路的平均保真度至少大於0.1%。我們預期 圖4b的全部數據應具有近似的保真度,但是由於仿真時間(紅色数字)需要很長時間才能檢查,我們將數據歸檔(參見“數據可用性”部分)。這部分數據因此處於量子至上的狀態。

     

    The classical computational cost

    經典計算的成本

    我們在經典計算機的實驗中模擬量子電路有2個目的:(1))通過使用可能簡化的電路計算FXEB來驗證我們的量子處理器和基準測試方法(圖4a),(2)估算FXEB以及對最困難的電路進行採樣的經典成本(圖4b)。對多達43個量子比特,我們使用Schrödinger算法,該算法模擬了完整量子態的演化;在Jülich超級計算機(100,000核、250 TB)運行了最大的樣例。超過此大小,則沒有足夠的隨機存取存儲器(RAM)來存儲量子的狀態了。對於更多的量子比特,我們使用運行在Google數據中心的混合Schrödinger-Feynman算法來計算單個比特串的幅度。在使用類似費曼路徑積分的方法連接它們之前,該算法將電路拆分為兩個量子比特補丁,並使用Schrödinger方法有效地模擬每個補丁。儘管具有更高的內存效率,但隨着路徑深度與連接補丁的門的數量呈指數增長,隨着電路深度的增加,Schrödinger-Feynman算法的計算量也呈指數增長。

    為了估算優越性電路的經典計算成本(圖4中的灰色数字),我們在Summit超級計算機以及Google集群上都運行了部分量子電路的仿真,從而推斷出其全部成本。在此推斷中,我們通過擴展FXEB的驗證成本來認定採樣的計算成本,例如,一個0.1%減少了約1000的花費。在當今世界上功能最強大的Summit超級計算機上,我們使用了一個受費曼路徑積分啟發的方法,該方法在低深度下效率最高。當m = 20時,張量無法合理地放入節點內存中,因此我們只能在m=14時測量運行時間,因此我們估計以1%的保真度採樣300萬個比特串將需要一年。

    在谷歌雲服務器上,我們預估使用Schrödinger-Feynman算法以0.1%的保真度在m = 20時運行相同的任務將耗費50萬億個核/小時,並消耗1皮瓦時的能量。從這個角度來看,對量子處理器上的電路採樣三百萬次需要600秒,而採樣時間受控制硬件通信的限制;實際上,量子處理的凈量子處理器的凈時間僅為30秒左右。所有電路的比特串樣本都已在線存檔(請參見“數據可用性”部分),以激勵開發和測試更高級的驗證算法。

    有人可能會懷疑算法創新可以在多大程度上增強經典模擬的效果。我們的假設基於複雜理論的認知,即算法任務的成本是電路大小的指數。的確,在過去的幾年中,模擬算法已經得到了穩步的提升。我們預計最終將實現比報告里提到的更低的仿真成本,但是我們也期望更大型的量子處理器在硬件方面的改進將持續超越它們。

     

    Verifying digital error model

    驗證数字錯誤模型

    基於量子錯誤校正理論的一個關鍵假設是—量子態錯誤可以考慮数字化和本地化。基於這樣的一個数字模型,演化量子態中的所有錯誤都可能通過散布在電路中的一組局部保利誤差(位翻轉或相位翻轉)來表徵。由於持續振幅是量子力學的基礎,所以需要測試量子系統中的錯誤是否可以被視為離散的和呈概率分佈的。我們實驗的觀察結果證明該模型對我們處理器確實是有效的。我們系統的保真度可以通過一個簡單的模型很好地預測,在該模型中,每個門各自的特徵保真度相乘起來(圖4)。

    為了能成功被数字化錯誤模型描述,系統的相關雙指數級得很小才行。我們通過選擇隨機化和解相關錯誤的電路,優化控制以最大程度地減少系統錯誤和泄漏以及設計比相關噪聲源(如1 / f磁通噪聲)運行得更快的門,從而在我們的實驗中達成了這一點。通過在高達253的希爾伯特空間對預測性不相關的誤差模型的演示,可以表明我們可以構建一個系統,在該系統中量子資源(例如糾纏)不會過於脆弱。

     

    The future

    未來

    基於超導量子比特的量子處理器現在可以處理,量綱為253 ≈ 9 ×1015的希爾伯特(Hilbert)空間的計算,超出了當今最快的經典超級計算機的上限。據我們所知,此次試驗標記了只能在量子處理器運行的第一個計算。量子處理器因此構建了量子優越性的制度。我們希望他們的計算能力將繼續以雙指數級的比率增長:模擬量子電路的經典成本隨着計算量的增加而呈指數級的增長,而硬件的提升將可能遵循量子處理器當量的摩爾定律,即每隔幾年此計算量就翻倍。為了支撐雙指數級的增長率並最終提供運算著名的,如Shor 或者Grover ,量子算法所需的計算量,量子誤差修正的工程學將成為關注的焦點。

    Bernstein 和 Vazirani 闡述的擴展自Church–Turing的論文,斷言任何合理的模型都可以由圖靈機有效的模擬。

     

    Data availability

    數據可用性

    用於本次研究形成和分析的數據庫可在我么公開的樹妖(Dryad)倉庫上獲得 (https://doi.org/10.5061/dryad.k6t1rj8)。

     

    在線內容

     任何方法、額外參考、自然研究的報告摘要、源數據、擴展數據、補充信息、確認書、同行評審信息;作者貢獻和利益衝突的詳細信息; 以及數據和代碼可用性均可在 https://doi.org/10.1038/s41586-019-1666-5 得到

     

    初次嘗試翻譯,錯誤之處必不在少,歡迎批評指正

    附:

    1)英文論文下載:  

    2)

     

    *****************************************************************************************************

    精力有限,想法太多,專註做好一件事就行

    • 我只是一個程序猿。5年內把代碼寫好,技術博客字字推敲,堅持零拷貝和原創
    • 寫博客的意義在於鍛煉邏輯條理性,加深對知識的系統性理解,鍛煉文筆,如果恰好又對別人有點幫助,那真是一件令人開心的事

    *****************************************************************************************************

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※試算大陸海運運費!

  • VS2019打包WPF安裝程序最新教程

    VS2019打包WPF安裝程序最新教程

    VS2019打包WPF安裝程序最新教程,使用Visual Studio 2019開發的WPF程序如果想要打包為安裝程序,除了在VS2019找到WPF項目類庫直接右鍵發布之外,更常用的還是將其打包為exe或者msi的安裝程序;打包成安裝程序的話,客戶得到安裝程序直接安裝即可使用,即使在離線環境情況下,安裝好就可以使用了。

    一些傳統行業發布程序時,比較常用這種方法,如醫療,教育等。

    演示程序打包一覽

    在本教程中,我完整的打包了一個簡單的WPF程序,最終安裝好了以後,在桌面有一個我的程序的快捷方式圖標,點擊這個圖標即可打開應用程序。

    WPF安裝程序桌面圖標  

    程序運行后的效果如下所示:

    VS2019打包WPF安裝程序運行效果 

    VS2019打包WPF安裝程序步驟

    使用VS2019打包WPF安裝程序有很多種方法,本篇教程基於VS擴展插件Microsoft Visual Studio Installer Projects工具來打包,實際上此工具,在VS2010時自帶有,只是後面版本的Visual Studio取消了此插件,現在需要單獨安裝。

    安裝打包Installer插件

    安裝Microsoft Visual Studio Installer Projects插件有兩種方式。一是下載插件單獨安裝,二是在VS裏面在線安裝。

    Microsoft Visual Studio Installer Projects下載地址:

    官方下載地址:

     

    下載下來后,你會在你的保存目錄看到此文件的圖標是這樣的,直接雙擊安裝就可以了,如果打開了Visual Studio,先將VS關閉后再安裝即可。

    安裝插件

    如果你不能從官網下載到,可以從本站直接下載即可。離線下載安裝的方式適用於斷網環境開發。

    VS在線安裝Microsoft Visual Studio Installer Projects

    Microsoft Visual Studio Installer Projects插件也可以在線直接安裝,步驟為:點擊菜單欄【擴展(X)】,然後在彈出來的一個窗體裏面,在右側搜索框裏面搜索“Microsoft Visual Studio Installer Projects”,一般第1個就是它了,然後點擊Download(下載),然後安裝就可以了。

    VS在線安裝Microsoft Visual Studio Installer Projects

    點擊Download后如下:

    下載插件

    下載完畢后,你需要把VS關閉掉,它會自動的安裝。

    自動安裝插件

    安裝好了后,啟動VS即可。

    創建安裝項目

    重新打開Visual Studio,打開一個你現有的包含WPF項目的解決方案即可,然後創建安裝項目。在解決方案上右鍵 –> 【新建項目】–> 【Setup Project】,添加Setup Project項目時,VS2019可以搜索項目模板,如下圖所示。

    創建安裝項目

    創建好了后,主界面變成如下圖所示:

    安裝項目主界面

    左邊窗口三個文件夾圖片說明如下:

    Application Folder:應用程序包含的文件設置,指最終在客戶電腦上的安裝根目錄。如下圖所示:

    應用程序目錄子目錄

    User’s Desktop:用戶桌面快捷方式設置,用戶桌面,一般放個快捷圖標。

    User’s Programs Menu:用戶啟動菜單的快捷方式設置,一般也是放快捷圖標。

    Application Folder是安裝程序的根目錄,你編寫的程序生成的dll,安裝后就存放在這個目錄。

    添加項目輸出

    安裝項目建好了后,需要要往裡面添加項目輸出,操作方式為:右鍵Application Folder —>Add—>項目輸出。

    該操作也可以直接在安裝程序項目類庫上面通過右鍵操作來添加項目輸出,如下圖所示:

    右鍵設置屬性

    設置項目屬性

    項目屬性的設置,是用於最終一個生成安裝程序的描述信息,這個描述信息,這個描述信息主要內容有程序的作者,標題,公司信息,技術支持等等。最直觀的方式可以通過2種方式查看。

    第一種查看方式:安裝前將鼠標放到安裝程序文件上,會有提示信息,如下圖所示:

    屬性提示

    第二種查看方式:安裝后在控制面板處,找到安裝程序,即可查看,如下圖所示:

    控制面板看到的安裝后程序描述  

    項目屬性的設置方式為:(1)左鍵選中項目,(2)點擊解決方案欄屬性,注意,不是右鍵選擇屬性,而是如下圖一樣選擇屬性。

    設置安裝程序屬性

    當你點了屬性后,會出現如下的窗口。

    設置屬性主窗口

    在當前的演示程序中,我是按照上圖做的設置,設置都很簡單,不需要做額外的解釋,如果有不明白的,可以加群與我聯繫。

    添加快捷方式圖標

    程序安裝好,我們當然希望用戶能夠快速的打開我們的應用程序,你就需要為你的安裝程序製作快捷方式,方法很簡單。

    方法:(1)中間窗口右鍵,創建新的快捷方式

    創建新的快捷方式

    (2)彈窗裏面選擇Application Folder,雙擊進入另外一個界面

    創建新的快捷方式第2步

    雙擊后,進入下圖這個界面,選擇主輸出即可。

    創建新的快捷方式第3步

    完了後點擊OK按鈕,就進入下圖這個界面。然後將快捷方式名稱改為你應用程序的名稱。

    改快捷方式圖標名稱

    改名后的效果:

    改名后的效果

    最後一步,也是最重要一步,在上圖中選中改名后的圖標,將其拖到左側窗口User’s Desktop目錄即可。

    拖動快捷方式圖標到對應位置

    開始菜單圖標(User’s Programs Menu)設置方式同上面的步驟是一樣的,這裏就不再重複了。

    依賴文件

    打包正式項目的時候,界面程序可能依賴於很多其它類庫,或者第3方的dll文件,我們需要把它們一起打包,並且這些第3方程序或者dll需要同主程序在同一個安裝路徑下,那麼在打包時,也就需要額外的把這些文件也打包進來。

    所有的操作都可以在中間窗口通過右鍵添加文件,程序集來實現,如下圖所示

    添加依賴文件

    添加註冊表項目

    製作的安裝包如果要添加註冊表項目,可以通過選中安裝程序項目,然後右鍵,在彈出的菜單裏面找到【View】,即可以添加註冊表項目,按照提示一步一步操作即可。

    另外有些打包的程序,需要在安裝前或者安裝后做一些額外的操作,都可以通過自定義操作來實現,如主程序安裝好了以後,還得安裝一個windows服務程序,再安裝另外一個自動升級程序,都可以通過這裏來實現。

    添加註冊表項目

    以上的基本操作熟悉后,相信對於簡單的桌面程序打包應該沒有什麼問題了。

    另外需要注意的是,對外打包,需要更改為Release模式

    打包依賴框架

    最後再說一下關於 .net 環境的問題,如果你需要在打包時,將相應版本的.Net Framework一起打包到安裝程序裏面也是可以的,只是要注意,有可能你的打包機器上並沒有安裝相應的.net framework文件,則需要到官方或者網上下載對應版本的文件,例如這個演示程序,我設定的依賴框架是 4.5.2版本的,那麼需要將NDP452-KB2901907-x86-x64-AllOS-CHS.exe(.net framework 4.5.2安裝文件)放到指定目錄才能正常的生成打包文件。

    需要將.net 的離線安裝文件放到以下目錄,其它版本則注意下路徑即可,一般C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

    目錄下面有不同版本的以DotNetFX開頭的目錄,如下圖所示:

    依賴框架保存目錄 依賴框架保存目錄

    將相應的版本的.net framework框架文件放到對應的目錄即可,我這個演示程序是放到下面這個目錄的。

    C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX452\zh-Hans

    具體打包步驟為:右鍵安裝項目,選擇屬性,彈出窗口點擊Prerequisites…按鈕。再在彈出的窗口選擇你應用程序需要的框架版本即可。可以選擇多個。

    Prerequisites

    選擇需要打包的框架版本即可。

    框架版本

    待安裝程序打包成功后,即可在生成目錄看到該框架的安裝包,如下圖所示:

    生成目錄框架文件

    好了,以上就是使用VS2019打包WPF安裝程序的完整步驟。

    演示程序可以點擊這裏下載。

    打包后安裝一覽

    成生打包文件成功后,就可以雙擊msi或者exe文件進行安裝了,安裝效果圖如下:

    安裝打包程序

    選擇安裝目錄

    安裝打包程序

    在演示的這個打包程序裏面,比較簡單,實際上你可以添加用戶協議文件,輸入用戶信息后才能安裝,這些都可以在打包時設置。

    演示程序源碼可以在原文鏈接處下載

    本文首發於:

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    ※專營大陸快遞台灣服務

    台灣快遞大陸的貨運公司有哪些呢?

  • 關於GDAL讀寫Shp亂碼的問題總結

    關於GDAL讀寫Shp亂碼的問題總結

    目錄

    1. 正文

    最近在使用GDAL讀寫Shp格式中的屬性字段的時候也遇到了中文亂碼的問題,總結下自己遇到的情況。

    1.1. shp文件本身的編碼的問題

    應該是由於shp格式加入了對寬字符的支持,所以導致有段時間的shp文件和ArcGIS是存在不匹配的問題,所以在網上搜索資源的時候遇到了大量的關於ArcMap显示shp屬性表出現亂碼的問題。現在的shp格式的文件應該已經穩定下來了,新添加了一個.cpg的文件,裏面保存着屬性表的編碼格式:

    圖1-1:shp格式的.cpg文件

    從ArcGIS10.2開始,只要是屬性表編碼與.cpg文件記錄的編碼方式一致,就不會再有显示亂碼的問題。網上查詢到的修改註冊表的方法,我在ArcGIS10.2中試過,似乎已經不再起效了。

    那麼對於沒有.cpg或者的情況,應該可以看屬性表.dbf文件。如果編碼方式正確,這個文件用文本編輯器打開是可以看到正常的中文的:

    圖1-2:shp格式的.dbf文件

    在正常显示中文情況下,可以查看下文件的編碼方式:

    圖1-3:查看編碼方式

    當然,如果遇到亂碼,可以嘗試用別的編碼方式打開,這樣你就能知道屬性表具體是什麼編碼了。對於國內的情況來說,只有ANSI編碼和UNICODE編碼兩種:其中簡體中文系統中ANSI編碼就是GB2312編碼;UTF-8是UNICODE編碼的一種具體實現。

    1.2. 設置讀取的編碼方式

    1.2.1. GDAL設置

    可以通過全局設置函數CPLSetConfigOption(),來配置讀取Shp文件的讀取編碼。例如對於簡體中文系統中ANSI編碼,可以設置為GBK:

    CPLSetConfigOption("SHAPE_ENCODING","GBK");

    上面這種方式是全局設置的,如果想設置單個文件的編碼方式也是可以的。例如,打開一個矢量文件讀取為UTF-8的數據集:

    char** ppszOptions = NULL;
    ppszOptions = CSLSetNameValue(ppszOptions, "ENCODING", "UTF-8");
    GDALDataset *poDS = (GDALDataset*)GDALOpenEx(filePath.c_str(), GDAL_OF_VECTOR, NULL, ppszOptions, NULL);

    網上提供的解決方案都是將編碼方式設置為空[1],這種方式應該更具有通用性,起碼我這裏讀取GBK和UTF-8格式的Shp的格式都是可以的:

    CPLSetConfigOption("SHAPE_ENCODING","");

    1.2.2. 解碼方式

    如果讀取出來的字段屬性仍然是亂碼,就應該考慮字符串的解碼問題,就是獲取的字段屬性字符串沒有正確的解碼出來。例如讀取UTF-8的Shp文件的屬性字段:

    OGRFeature *poFeature;
    while ((poFeature = poLayer->GetNextFeature()) != NULL)
    {
        OGRGeometry *pGeo = poFeature->GetGeometryRef();
        OGRwkbGeometryType pGeoType = pGeo->getGeometryType();
    
        //      
        OGRFeatureDefn *poFDefn = poLayer->GetLayerDefn();
        int n = poFDefn->GetFieldCount(); //獲得字段的數目,不包括前兩個字段(FID,Shape);
        for (int iField = 0; iField <n; iField++)
        {
            //輸出每個字段的值
            //cout << poFeature->GetFieldAsString(iField) << "    ";
            cout << UTF8_To_string(poFeature->GetFieldAsString(iField)) << "   ";           
        }
        //cout << endl;   
    
        OGRFeature::DestroyFeature(poFeature);
    }

    默認情況下,cout是無法正確打印輸出UTF-8字符編碼的,通過UTF8_To_string這個函數,將UTF-8編碼的字符串轉換成本地ANSI編碼,也就是GBK編碼字符串,就可以正確輸出显示了。附帶一下兩者的轉換函數[2]

    // UTF8轉std:string
    // 轉換過程:先將utf8轉雙字節Unicode編碼,再通過WideCharToMultiByte將寬字符轉換為多字節。
    std::string UTF8_To_string(const std::string& str) 
    { 
        int nwLen = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0); 
        wchar_t* pwBuf = new wchar_t[nwLen + 1];    //一定要加1,不然會出現尾巴 
        memset(pwBuf, 0, nwLen * 2 + 2); 
        MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), pwBuf, nwLen); 
        int nLen = WideCharToMultiByte(CP_ACP, 0, pwBuf, -1, NULL, NULL, NULL, NULL); 
        char* pBuf = new char[nLen + 1]; 
        memset(pBuf, 0, nLen + 1); 
        WideCharToMultiByte(CP_ACP, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);
    
        std::string strRet = pBuf; 
    
        delete []pBuf; 
        delete []pwBuf; 
        pBuf = NULL; 
        pwBuf = NULL; 
    
        return strRet; 
    } 
    
    // std:string轉UTF8
    std::string string_To_UTF8(const std::string& str) 
    { 
        int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0); 
        wchar_t* pwBuf = new wchar_t[nwLen + 1];    //一定要加1,不然會出現尾巴 
        ZeroMemory(pwBuf, nwLen * 2 + 2); 
        ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), pwBuf, nwLen); 
        int nLen = ::WideCharToMultiByte(CP_UTF8, 0, pwBuf, -1, NULL, NULL, NULL, NULL); 
        char* pBuf = new char[nLen + 1]; 
        ZeroMemory(pBuf, nLen + 1); 
        ::WideCharToMultiByte(CP_UTF8, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL); 
    
        std::string strRet(pBuf); 
    
        delete []pwBuf; 
        delete []pBuf; 
        pwBuf = NULL; 
        pBuf  = NULL; 
    
        return strRet; 
    } 

    1.2.3. 其他

    還有個值得注意的問題就是Shp格式的屬性字段名稱的長度最大隻能支持10個字符。如果採用UTF-8編碼,可能用不了幾个中文字符就被截斷了,這個時候屬性字段名稱也可能存在亂碼。

    2. 參考

    [1]
    [2]

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    大陸寄台灣空運注意事項

    大陸海運台灣交貨時間多久?

  • 甲烷排放嚴重低估 研究:石油天然氣危害氣候 比預期還糟

    環境資訊中心綜合外電;姜唯 編譯;林大利 審校

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※試算大陸海運運費!

  • 西伯利亞發現仍遠古死鳥 估計有4.6萬年歷史

    摘錄自2020年2月23日星島日報報導

    科學家正研究一隻在俄羅斯西伯利亞冰天地雪地中發現、估計由對上一次冰河時期保留到現在的雀鳥屍體,推算牠已有4.6萬年歷史。   

    科學家認出那是一隻角百靈,在西伯利亞東北部偏遠的貝拉亞戈拉村內被發現,由於長期被埋及冰封,至今仍然保存良好,沒有腐化。瑞典自然歷史博物館的專家參與研究和化驗,並利用放射性碳技術推算牠已有4.6萬年歷史。   

    其中一位專家達倫對記者說,研究顯示,這隻遠古雀鳥是目前常見的兩種百靈鳥的祖先。科學家相信,對上一次冰河時期接近尾聲時,地球的氣候出現變化,令新物種出現。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    ※專營大陸快遞台灣服務

    台灣快遞大陸的貨運公司有哪些呢?

  • 蝗災肆虐非洲東部 烏干達大噴除蟲劑

    摘錄自2020年2月25日公視報導

    聯合國糧農組織估計,覆蓋一平方公里面積的沙漠蝗蟲,可以吃掉3.5萬人一天的糧食,專家則是指出,蝗蟲最可怕的地方在於繁殖力驚人。烏干達當局目前派出大批軍人,噴灑化學藥劑對沙漠蝗蟲進行撲殺,不過當地農民也有人質疑,這些除蟲劑對牲畜、土壤與植物,恐怕也會帶來後遺症。

    烏干達東北部以畜牧和養蜂為主的居民,看到這一幕全都憂心忡忡,擔心生計會出問題。烏干達畜牧居民羅魯說:「我們不知道對未來有何衝擊,也許後遺症會持續一兩年。你看到這裡是個菜園,一旦噴灑了化學物質,我們不知道效力會持續多久,最終我們會看到它的影響。」

    聯合國警告,如果不積極採取有效措施,接下來東非地區雨量充沛有利蝗蟲卵孵化,到了六月蝗蟲數量將成長500倍,屆時危機將更形惡化。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    大陸寄台灣空運注意事項

    大陸海運台灣交貨時間多久?

  • 堆肥葬更環保 美各州搶立法通過

    摘錄自2020年2月17日台灣醒報報導

    堆肥葬即將成為新的喪葬趨勢!Recompose公司16日發表聲明,藉由6位志願者遺體的實驗測試,證實利用遺體堆肥不會生成有害物質。當前美國多州正考慮將堆肥葬合法化。

    根據華盛頓州立大學教授卡彭特・伯格斯表示,在人體分解的最後階段加入混合木屑等營養材料,能讓微生物發揮更大效用。最後再加溫至攝氏55度消毒殺菌,分解後的土壤即可作為堆肥使用。

    據《科學新聞》週刊報導,Recompose公司創始人卡特李娜・斯派德在報告中特別表明,堆肥葬的有機降解相對於火葬,可以減少1.4噸的碳排放量,只使用火化所需能源的8分之 1。而相對於土葬,能夠大幅縮小土地使用空間,考慮土葬的棺材用料和成本,也降低碳足跡與喪葬費用。雖然堆肥葬不如火葬費用便宜,但廣泛運用後價格會有變低趨勢。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※試算大陸海運運費!

  • 加拿大原民癱瘓鐵路抗爭 警強勢驅離

    摘錄自2020年2月25日公視報導

    不滿天然氣管線的興建工程,加拿大有群眾長達幾個星期阻斷鐵路來表達抗議。不過就在當地時間24號,警方展開強勢驅離,將各重要路線搭建的帳篷拆除,抗爭人士也被警方逮捕。而幾個星期來鐵路停擺,產業供應鍊中斷,經濟遭到重創,大約有1500人因此失業。

    這波抗爭的起因,是所謂的「海岸線天然氣管線計畫」,路線跨越卑詩省北部,終點則為基蒂瑪特,並在當地建立天然氣液化廠區,以及可供船舶停靠的港口。這條路線跨越了卑詩省境內的原住民區域,因此在規劃階段,就持續和各有關部落溝通,並獲得沿線20個部落的民選議會或公民投票通過,工程也在2019年展開。

    但世襲的部落首領站出來反對,並發動部份族人、串聯加拿大綠黨等環保與政治團體,進行反對管線工程的抗爭。這個月初,警方因為奉法院命令逮捕數十名示威者,引發更大的抗議,導致全國鐵路運輸幾乎停擺。加拿大政府強調,會在經濟發展與環境和原住民權益上,取得平衡點。不過英國廣播公司BBC的報導說,原住民部落內部也是意見分歧。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    ※專營大陸快遞台灣服務

    台灣快遞大陸的貨運公司有哪些呢?

  • 金融業自省? 摩根大通警告客戶 氣候危機威脅人類

    環境資訊中心綜合外電;姜唯 編譯;林大利 審校

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

    大陸寄台灣空運注意事項

    大陸海運台灣交貨時間多久?