2012-07-03 35 views
42

Tôi đã tạo một ứng dụng C#/XAML kiểu Metro, và bây giờ tôi đang cố thêm nó vào điều khiển phiên bản (Git và, sau này là GitHub). Điều đó có nghĩa là tìm ra những tập tin thuộc về kiểm soát phiên bản và không có.Tôi có nên thêm tệp TemporaryKey.pfx của ứng dụng Metro vào điều khiển phiên bản không?

Khi tôi tạo dự án Metro của mình, Visual Studio đã thêm tệp vào đó có tên là ProjectName _TemporaryKey.pfx. Từ những gì tôi đã đọc, các tệp .pfx dường như có liên quan đến việc ký mã hoặc chứng chỉ hoặc một cái gì đó tương tự. Tôi chưa tìm thấy bất cứ điều gì giải thích chính xác những gì họ có ý nghĩa trong bối cảnh của các ứng dụng kiểu Metro, hoặc cách bạn phải quản lý chúng.

Tôi đang lập kế hoạch để đẩy mã của mình tới GitHub (trong kho lưu trữ công khai). Lâu dài hơn, tôi dự định đưa ứng dụng của mình vào cửa hàng Windows. Nếu tệp .pfx là bắt buộc để xây dựng dự án, thì tôi nên kiểm tra nó. Nếu nó chứa danh tính kỹ thuật số xác định tôi là tác giả của ứng dụng và xuất bản nó sẽ cho phép bất kỳ ai trên Internet đẩy phiên bản mới của ứng dụng của tôi đến cửa hàng Windows mà không cần kiến ​​thức của tôi, sau đó tôi muốn tốt hơn không kiểm tra xem nó trong.

Vì vậy, câu hỏi của tôi là, là có bất cứ điều gì bí mật trong TemporaryKey.pfx nộp? Tôi có nên kiểm tra nó trong kho lưu trữ công cộng của mình không, hoặc tôi có nên để nó khỏi kiểm soát nguồn không? (Và những gì sẽ phá vỡ nếu tôi không đặt nó vào kiểm soát nguồn, nhưng sau đó muốn kiểm tra mã của tôi trên máy tính khác?)

+1

Đó là một câu hỏi hay. Mặc dù tôi không có câu trả lời hay - nhưng khá dễ để tạo khóa mới, vì vậy mã vẫn có thể sử dụng được mà không cần đến nó (chỉ cần thêm một bước) - bạn cần chuyển đến tab Package.appxmanifest/Packaging/[ Chọn chứng chỉ ...]/[Cấu hình chứng chỉ ...]/[Tạo chứng chỉ kiểm tra ...] - cho phép bạn tạo tệp pfx mới, cũng hữu ích nếu tệp cũ không hợp lệ - ví dụ: khi bạn nâng cấp dự án của mình từ một phiên bản cũ hơn của Win8 và công cụ dev. –

+1

Được rồi, điều cần biết. Bạn có biết nếu bất cứ điều gì sẽ phá vỡ nếu bạn tạo ra một cert kiểm tra mới? Bạn sẽ không còn có thể gửi phiên bản ứng dụng mới của mình cho cửa hàng ứng dụng nữa không? Hoặc họ sẽ không chấp nhận bất cứ điều gì với một cert kiểm tra ở nơi đầu tiên - bạn có phải mua một cert nào đó trước khi bạn có thể gửi đến các cửa hàng ứng dụng? Phải có tài liệu cho nơi này, tôi chỉ không thể tìm thấy nó. –

+0

Không, xin lỗi. Tôi chưa thấy quá nhiều chi tiết về điều này và tôi chưa có mã cửa hàng hoặc đã tự xuất bản ứng dụng lên cửa hàng. –

Trả lời

33

.pfx được sử dụng tại chứng chỉ mã tạm thời để ký ứng dụng của bạn để triển khai máy của bạn để bạn có thể gỡ lỗi. Bạn có thể loại bỏ nó, nhưng một khóa tạm thời mới sẽ cần phải được tạo ra (thông qua tab Bao bì trong hộp thoại package.appxmanifest). Tôi luôn luôn để nó trong mã tôi đăng vì nó dễ dàng hơn trên người sử dụng mã (tức là, không có thông báo lỗi). Nếu bạn xem xét một số dự án nguồn khác của WinRT (ví dụ MVVMLight), chúng cũng bao gồm tệp .pfx để thuận tiện.

Nếu tôi hiểu mọi thứ chính xác, tệp .pfx tạm thời được thay thế trong quá trình gửi Store để bạn không cần phải lo lắng về việc tạm thời .pfx đang được người khác sử dụng.

+0

Có, khi bạn tạo gói ứng dụng để xuất bản nhằm mục đích lưu trữ, một tệp khóa mới $ appname $ _StoreKey.pfx sẽ được tạo. Tôi luôn giữ cả $ appname $ _TemporaryKey.pfx và $ appname $ _StoreKey.pfx để điều khiển phiên bản. –

+6

Sau đó, một câu hỏi sau sẽ là ... khi bạn xuất bản ứng dụng, bạn sẽ nhận được một '* _StoreKey.pfx' là không an toàn để kiểm tra trong đó? – kiewic

+0

Tôi sẽ không kiểm tra trong khóa cửa hàng, đặc biệt là không có trong một repo lưu trữ mà sau này có thể được chia sẻ với các thành viên khác trong nhóm. Trong VSTS bạn có thể sử dụng tùy chọn "Secure Files" cho điều này, nếu bạn muốn sử dụng Continuous Integration, nơi bạn cần PFX một lần nữa. – Patric

0

.PFX là chìa khóa của bạn (như chìa khóa cho cánh cửa nhà bạn). Điều này là dành cho mục đích ký mã với khóa riêng (cụm từ mật khẩu cần thiết để bảo mật). Không ai có thể có ngoại trừ nhà phát triển ứng dụng. Bạn có thể phiên bản nó nếu bạn là người duy nhất có quyền truy cập vào kho lưu trữ, nhưng ai đó có thể xâm nhập vào nó và sau đó những gì ...? Mọi người đều có thể giả vờ bạn, tác giả của chương trình. Xin lỗi vì tiếng Anh của tôi.

+0

Tôi hiểu những gì nó cho, nhưng bạn có nói rằng tuyên bố của Jeff Brand rằng "temp .pfx được thay thế trong quá trình gửi Store" là không chính xác? Nếu đúng, thì pfx tạm thời chỉ được sử dụng trong chế độ gỡ lỗi trên máy cục bộ của bạn, không bao giờ trong ứng dụng được triển khai. –

+0

"temp .pfx được thay thế trong quá trình gửi Store". Câu trả lời của tôi là chung chung. Bạn có thể sử dụng PFX cert được tạo ra bởi chính công cụ Makecert (https://msdn.microsoft.com/en-us/library/ff699202.aspx). Visual Studio tạo ra nó cho bạn tự động, nhưng nó không quan trọng. Đối với tôi, nó không thể được xuất bản cho bất kỳ ai, bởi vì nó có chứa khóa riêng mà không có cụm mật khẩu theo mặc định. –

Các vấn đề liên quan