2013-06-05 42 views
53

Tôi đã viết một ứng dụng khá đơn giản với C# /. NET và không thể tìm ra cách tốt để xuất bản nó. Đó là một loại "công cụ" mà người dùng sẽ chỉ chạy một lần hoặc chạy vài tháng một lần. Bởi vì điều này, tôi hy vọng rằng có một cách tôi có thể triển khai nó, nơi nó sẽ không cần cài đặt để chạy (nó chỉ có thể được chạy bằng cách nhấp đúp vào một tập tin EXE ngay sau khi tải về).Cách tốt nhất để triển khai ứng dụng Visual Studio có thể chạy mà không cần cài đặt

Tuy nhiên, nó vẫn cần (bằng cách nào đó) để bao gồm phiên bản đúng của .NET, thư viện, v.v. để nó chạy đúng. Tôi biết điều này được bao gồm khi sử dụng ClickOnce, nhưng điều đó vẫn cài đặt ứng dụng trên máy tính của người dùng.

Có cách nào để thực hiện điều này không?

EDIT - \ bin \ Debug

myAppName.application 
myAppName.exe 
myAppName.exe.config 
myAppName.exe.manifest 
myAppName.pdb 
myAppName.vshost.application 
myAppName.vshost.exe 
myAppName.vshost.exe.config 
myAppName.vshost.exe.manifest 
extraLibrary.dll 

cũng như hai thư mục

app.publish 
Resources 

Trả lời

70

Có thể và là deceptively dễ dàng:

  1. "Xuất bản" ứng dụng (để , ví dụ: một số thư mục trên ổ C), hoặc từ menu Xây dựng hoặc từ thuộc tính của dự án -> Publi sh. Điều này sẽ tạo ra một trình cài đặt cho một ứng dụng ClickOnce.
  2. Nhưng thay vì sử dụng trình cài đặt sản xuất, tìm các tập tin được sản xuất (file EXE và .config, .manifest, và .application tác phẩm, cùng với bất kỳ tập tin DLL, vv) - tất cả chúng đều nằm trong cùng một thư mục và thường trong thư mục bin\Debug bên dưới tệp dự án (.csproj).
  3. Nén thư mục đó (bỏ mọi tệp * .vhost. * và thư mục app.publish (chúng không cần thiết) và tệp .pdb trừ khi bạn thấy trước gỡ lỗi trực tiếp trên hệ thống của người dùng (ví dụ: bằng điều khiển từ xa)) và cung cấp cho người dùng.

Một ưu điểm nữa là, dưới dạng ứng dụng ClickOnce, nó không yêu cầu quyền quản trị để chạy (nếu ứng dụng của bạn tuân thủ nguyên tắc thông thường cho thư mục để sử dụng cho dữ liệu ứng dụng, v.v.). Đối với .NET, bạn có thể kiểm tra phiên bản .NET tối thiểu được cài đặt (hoặc không) trong ứng dụng (hầu hết người dùng đã cài đặt nó) và trình bày một hộp thoại có liên kết đến trang tải xuống. trên trang web của Microsoft (hoặc trỏ đến một trong các trang của bạn có thể chuyển hướng đến trang Microsoft - điều này làm cho trang web mạnh mẽ hơn nếu thay đổi URL của Microsoft). Vì nó là một tiện ích nhỏ, bạn có thể nhắm mục tiêu .NET 2.0 để giảm khả năng người dùng phải cài đặt .NET.

Nó hoạt động. Chúng tôi sử dụng phương pháp này trong quá trình phát triển và thử nghiệm để tránh phải liên tục gỡ cài đặt và cài đặt ứng dụng mà vẫn còn khá gần với cách ứng dụng cuối cùng sẽ chạy.

+0

Tuyệt vời, cảm ơn! Bạn có thể rõ ràng hơn về tệp nào tôi cần đưa vào zip không? Tôi đã chỉnh sửa nội dung của \ Debug vào OP của tôi. – Wilson

+0

@Wilson: đã hoàn tất! Tuy nhiên, tôi không chắc chắn về thư mục "Tài nguyên". Tôi không có bất kỳ dự án nào với thư mục con như vậy. Tôi sẽ để nó vào. Bạn có thể kiểm tra nó bằng cách cố gắng để nó ra và xem nếu ứng dụng của bạn không thành công. –

+1

Tuyệt vời, cảm ơn câu trả lời thực sự toàn diện. – Wilson

1

Trước tiên, bạn cần phải công bố các tập tin bằng cách:

  1. BUILD -> PUBLISH hoặc bởi dự án nhấp chuột phải vào Solution Explorer -> properties -> xuất bản hoặc chọn dự án trong Solution Explorer và nhấn Alt + Nhập LƯU Ý: nếu bạn đang sử dụng Visual Studio 2013 thì trong thuộc tính bạn phải đi đến BUILD và sau đó bạn phải tắt xác định hằng số DEBUG và xác định hằng TRACE và bạn đã sẵn sàng để đi. Representation

  2. Lưu tệp của bạn vào một thư mục cụ thể. Tìm các tệp được tạo (tệp EXE và tệp .config, .manifest và .application, cùng với bất kỳ tệp DLL nào, v.v.) - tất cả đều nằm trong cùng một thư mục và thường trong thư mục bin\Debug bên dưới tệp dự án (.csproj). Trong Visual Studio, chúng nằm trong thư mục Tệp Ứng dụng và bên trong bạn chỉ cần tệp .exe và dll. (Bạn phải xóa ClickOnce và các tập tin khác và sau đó làm cho thư mục này một file zip và phân phối nó.)

Chú ý: Việc áp dụng ClickOnce không cài đặt dự án vào hệ thống, nhưng nó có một lợi thế. Bạn KHÔNG yêu cầu quyền quản trị ở đây để chạy (nếu ứng dụng của bạn tuân thủ các nguyên tắc thông thường cho thư mục nào để sử dụng cho dữ liệu ứng dụng, v.v.).

+2

Tại sao bạn cần đặt DEBUG và TRACE thành các giá trị cụ thể? –

+0

Bạn có thể bật thuộc tính có điều kiện Trace hoặc Debug cho một bản dựng, hoặc cả hai hoặc không. Do đó, có bốn loại xây dựng: Gỡ lỗi, Theo dõi, cả hai hoặc không. Một số bản phát hành để triển khai sản xuất có thể không chứa; hầu hết các bản dựng gỡ lỗi đều chứa cả hai. .................................................. ................................. https: //msdn.microsoft.com/en-us/library/aa983575 (v = vs.71) .aspx ......................................... .................................................. ......... https://msdn.microsoft.com/en-IN/library/ms164714.aspx – abe312

+0

Một số phân bổ sẽ theo thứ tự ... –

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