2012-06-29 26 views
52

Tôi có một số thư viện lớp với số lượng mã không tồn tại nhỏ. Các thư viện lớp hiện đang nhắm mục tiêu .NET 4.0. Có hướng dẫn nào về cách chuyển đổi các thư viện này thành thư viện di động không? Từ cách nhìn vào csproj, nó không xuất hiện rằng có rất nhiều khác biệt:Có hướng dẫn nào về việc chuyển đổi các thư viện lớp .NET hiện có sang các thư viện di động không?

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> 

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

có phải là một ý tưởng tốt hay xấu để cố gắng chuyển đổi một thư viện lớp hiện có để là một thư viện di động?

+0

Igor Milovanović có một hướng dẫn tốt đẹp với hình ảnh [ở đây] (http://geekswithblogs.net/imilovanovic/archive/2012/08/31/vs2012---how-to-manually-convert-.net-class- library-to.aspx). –

Trả lời

66

Chúng tôi cũng chuyển đổi các thư viện hiện có để thư viện di động và nó hoạt động tốt. Bạn phải sửa đổi tệp dự án. Thay thế các dòng sau:

<Import Project="..." /> 

với

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> 

Add sau dòng bên trong một thẻ PropertyGroup

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

Và loại bỏ dòng sau từ AssemblyInfo.cs nộp

[assembly: ComVisible(false)] 
[assembly: Guid("...")] 

Af Vì vậy, Visual Studio sẽ hiển thị cho bạn trang Tab "Thư viện" trong trang Thuộc tính dự án và bạn có thể thay đổi khung mục tiêu cho thư viện di động.

+3

Chỉ cần thay đổi nội dung một vài dự án (có thể lớn hơn các phiên bản tập tin dự án), và tôi cũng đã có thêm các '' và '' thẻ vào một PropertyGroup là tốt. Sử dụng các giá trị của TFVersion -> 4.0 và TFProfile -> 104 làm việc cho tôi. – markerikson

+0

Chỉnh sửa: 'TargetFrameworkVersion' phải là' v4.0' (lưu ý 'v') –

+1

WinPhone 8.1 là: Profile32 v4.6 Jimmyt1988

0

Bạn có thể xoá dòng <Import Project="..." />. Sau đó, khi bạn tải lại dự án, Visual Studio sẽ hỏi bạn khung công tác nào cần nhắm mục tiêu. Sau đó bạn có thể thay đổi điều này sau trong thuộc tính của dự án.

+0

Tôi nghĩ rằng điều này sẽ được gọn gàng, nhưng tiếc là nó đã không làm việc cho tôi. –

+1

Hmm, không giống như thế này nữa. –

4

Tôi tạo ra một Studio mở rộng trực quan để tự động hoá này. Chỉ cần tìm kiếm trong Visual Studio> 2012 trong Tiện ích mở rộng cho "convert to pcl"

Mã nguồn cũng có sẵn trên Github.

+14

Nó đã được cập nhật để hoạt động vào năm 2015 chưa? – Sinaesthetic