5

Tôi có một giải pháp có chứa một số dự án, cho phép gọi chúng là ProjectA và ProjectB. Tôi cần ProjectA để có một tham chiếu đến ProjectB, tuy nhiên khi tôi "xuất khẩu mẫu" tôi dường như không thể giữ tham chiếu. Những gì tôi đang cố gắng làm là để nó tạo tham chiếu cho tôi khi tôi tạo một dự án mới và sau đó tự động đặt tên nó cho những gì tôi đã nhập vào.Làm cách nào để thêm Tham chiếu dự án cùng giải pháp khi xuất mẫu trong Visual Studio?

Trả lời

1

Điều này hơi ngoài phạm vi đối với các mẫu Visual Studio thuần túy.

Visual Studio mẫu hỗ trợ thay thế các thông số cho các mẫu, vì vậy những gì bạn có thể làm là:

  • Bên ProjectA.zip mẫu tập tin của bạn, bạn sẽ tìm thấy ProjectA.csproj, đó là khuôn mẫu cho dự án
  • Trong ProjectA.csproj bạn sẽ tìm một số <ItemGroup> chứa <Reference> mục
  • Trong số đó phải là một mục nhập như <Reference Include="ProjectB">

Khi bạn tạo dự án từ mẫu ProjectB của bạn, tên của nó sẽ được người dùng chỉ định, do đó bạn muốn thay thế ProjectB bằng thông số thay thế như $Foo$.

Đây là nơi nó nằm ngoài phạm vi cho các mẫu thuần túy: Làm thế nào để bạn yêu cầu studio trực quan thay thế $Foo$? Và thay thế sẽ là gì?

Lựa chọn duy nhất của bạn ở đây là sử dụng trình hướng dẫn tùy chỉnh, tìm kiếm dự án loại ProjectB hoặc yêu cầu người dùng cho dự án đó.

Dưới đây là một phác thảo cho làm thế nào để có được mẫu và tùy chỉnh phù thủy để có được cùng:

  • Tạo một dự án VSIX gói.
  • Đảm bảo thêm thuộc tính [ProvideBindingPath] vào gói của bạn. Điều này là cần thiết để có được thuật sĩ tùy chỉnh đăng ký (nếu không bạn sẽ cần phải cài đặt nó vào GAC, vì vậy VS có thể tìm thấy nó)
  • Tạo thuật sĩ của bạn, nó nên thực hiện Microsoft.VisualStudio.TemplateWizard.IWizard
  • Thêm mẫu của bạn vào giải pháp và thêm nó như một tài sản ProjectTemplate trong của gói của bạn vsixmanifest

trong tập tin .vstemplate của mẫu của bạn, hãy thêm đoạn sau dưới <TemplateContent> khối:

<WizardExtension> 
    <Assembly>Your.Packages.Assembly</Assembly> 
    <FullClassName>Your.Wizard</FullClassName> 
</WizardExtension> 

Đó sẽ mang đến wizar của bạn d khi dự án được tạo. Bạn có thể, trong phương thức RunStarted hiển thị hộp thoại yêu cầu tham chiếu hoặc bạn có thể sử dụng tham số automationObject (thực tế là một ví dụ EnvDTE.DTE) để thử và tìm dự án ProjectB và cung cấp tên trong số replacementsDictionary.

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