2009-08-08 26 views
9

Có thể triển khai ứng dụng .NET 2.0 dưới dạng tệp thực thi di động không? Vì vậy, chương trình của tôi có thể được chạy trong một Đĩa Flash mà không có .NET Framework 2.0 được cài đặt trong máy mục tiêu. Hoặc có lẽ là nó có thể phân phối chương trình của tôi với các DLL yêu cầu. NET, để không có cài đặt khung là cần thiết?Triển khai ứng dụng C# (.NET 2.0) dưới dạng ứng dụng di động?

Tôi biết rằng có một số công cụ thay thế để biến exe .NET của tôi thành một tệp thực thi tự nhiên như RemoteSoft Salamander, Xenocode Postbuild và Thinstall, nhưng tiếc là tôi không có khả năng.

Tôi cũng đã cố gắng để nhúng phụ thuộc với mkbundle Mono, nhưng nó sai lầm chương trình của tôi lên = \ (không có phong cách giao diện XP, đã phá vỡ một số điều khiển và chức năng của nó)

Bất kỳ loại trợ giúp sẽ được đánh giá cao :)

Cảm ơn.

fyi: IDE của tôi là Microsoft Visual C# 2008 Express Edition với .NET Framework 2.0 làm khung mục tiêu.

Trả lời

9

Vâng, trừ những thứ như Salamander và Thinstall (nay là VMWare ThinApp), bạn sẽ phải cài đặt .NET đã nếu bạn thực sự muốn chạy .NET.

có thể có thể chạy Mono mà không thực sự cài đặt (không liên kết tĩnh chương trình của bạn, nhưng bao gồm Mono trên ổ flash). Tôi nghi ngờ nó sẽ là khó khăn mặc dù, như bạn phải nói với thời gian chạy về những thứ như vị trí GAC.

Tôi không thể thấy bất kỳ điều gì trong Câu hỏi thường gặp Mono về điều này, nhưng bạn có thể muốn ping danh sách gửi thư của Mono - nó giống như một điều thú vị và hữu ích để có thể thực hiện.

8

Không; bạn cần cài đặt khung công tác hoặc các công cụ như bạn đã đề cập.

Bạn thể có khả năng nhìn vào mối liên kết tĩnh mới mono, nhưng đó là về nó ...

1

Cài đặt chuyên biệt cũng rất tốn kém và không hoạt động trong mọi tình huống. Nếu bạn muốn chạy ứng dụng của bạn mà không cần cài đặt .Net bạn có thể gặp rắc rối mặc dù có những công cụ làm điều đó Xenocode has a tool có thể làm điều này cho bạn và nó rẻ hơn so với thinstall.

Nhưng nếu bạn hỏi ý kiến ​​của tôi thì đó là ý tưởng tồi khi sử dụng chúng. Tốt hơn thuyết phục thị trường mục tiêu của bạn để cài đặt .Net 2 (Mà là khá nhiều phổ biến những ngày này), và sau đó đóng gói tất cả các tập tin thư viện của bạn vào một tập tin bằng cách sử dụng một Obfuscator rẻ hơn như công cụ (Có một tốt từ Smartassembly.)

Tôi đã sử dụng Thinstall trong một thời gian dài, và tôi đã làm việc trên công nghệ này rất nhiều, vì vậy tôi không chụp mà không có kinh nghiệm.

1

Tôi đã không cố gắng này bản thân mình nhưng đây là thủ tục:

  • Thực hiện một dự án C#.
  • Trong Solution Explorer, bên trong dự án của bạn, có dòng "Tham chiếu". Nhấp vào dấu cộng gần nó. Bây giờ bạn có thể thấy tất cả các phụ thuộc của dự án của bạn. Xóa tất cả các tham chiếu không được sử dụng (xóa và cố gắng chạy/xây dựng. Nếu có thể thực hiện được, nó không được sử dụng. Nếu có lỗi, hãy trả về nó bằng cách thêm nó (nhấn chuột phải, "Add Reference" ")).
  • Đối với mỗi tham chiếu, chuyển đến Thuộc tính và trong thuộc tính "Sao chép địa phương", hãy chọn "Đúng". Đối với mỗi hình ảnh, biểu tượng ... làm cho như tham chiếu.
  • Xây dựng lại dự án của bạn. Bây giờ trong thư mục Build/Release (bên trong bin), bạn sẽ thấy nhiều file dll. Những tệp đó có thông tin về mọi tài nguyên.
  • Sao chép tất cả các tệp trong thư mục (từ bước số 4) vào một thư mục mới.
  • Chuyển đến thư mục: "\ Microsoft.Net \ Framework \" và sao chép tệp "mscrolib.dll" vào thư mục mới từ bước 5. Nếu bạn không tìm thấy tệp này, bạn luôn có thể thực hiện tìm kiếm trong Ổ cứng chứa thư mục Windows.
  • Hiện ứng dụng của bạn là di động (với toàn bộ nội dung thư mục).

- Nguồn: http://www.codeproject.com/Tips/392308/Csharp-Portable-Exe-File

+0

có hoạt động không? – Andreas

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