Tôi gặp sự cố khi hiển thị gui trình hướng dẫn mẫu của studio trực quan của tôi. Tôi làm theo các bước sau: http://msdn.microsoft.com/en-us/library/ms185301.aspxTrình hướng dẫn mẫu VS2012 - GUI không hiển thị
Dưới đây là những gì tôi đã làm:
1) Tạo một thư viện C# lớp (.dll) với các tập tin sau đây:
UserInputForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace myprojectvstemplate
{
public partial class UserInputForm : Form
{
private string customMessage;
public UserInputForm()
{
InitializeComponent();
MessageBox.Show("here, calling ui");
}
public string get_CustomMessage()
{
return customMessage;
}
private void button1_Click(object sender, EventArgs e)
{
customMessage = textBox1.Text;
this.Dispose();
}
}
}
2) Đã thêm biểu mẫu nhập của người dùng bằng hộp chỉnh sửa và hộp tổ hợp có mã UserInputForm.cs
using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TemplateWizard;
using System.Windows.Forms;
using EnvDTE;
namespace myprojectvstemplate
{
public class IWizardImplementation : IWizard
{
private UserInputForm inputForm;
private string customMessage;
// This method is called before opening any item that
// has the OpenInEditor attribute.
public void BeforeOpeningFile(ProjectItem projectItem)
{
}
public void ProjectFinishedGenerating(Project project)
{
}
// This method is only called for item templates,
// not for project templates.
public void ProjectItemFinishedGenerating(ProjectItem
projectItem)
{
}
// This method is called after the project is created.
public void RunFinished()
{
}
public void RunStarted(object automationObject,
Dictionary<string, string> replacementsDictionary,
WizardRunKind runKind, object[] customParams)
{
try
{
// Display a form to the user. The form collects
// input for the custom message.
inputForm = new UserInputForm();
inputForm.ShowDialog();
customMessage = inputForm.get_CustomMessage();
// Add custom parameters.
replacementsDictionary.Add("$custommessage$",
customMessage);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// This method is only called for item templates,
// not for project templates.
public bool ShouldAddProjectItem(string filePath)
{
return true;
}
}
}
3) tạo ra public/private key mạnh và đăng ký lắp ráp từ "ký" tab trong trang thuộc tính
4) Phát hành tạo dll
5) đăng ký bán nó với gacutil/i mydllname. dll, không có lỗi
6) tạo một ++ mẫu giao diện điều khiển dự án C chỉ với một file:
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
cout << "Hi hello world:" << "$custommessage$";
return 0;
}
7) xuất khẩu làm mẫu dự án (không phải mục) với hộp kiểm trên "nhập khẩu tự động vào vs". Đã sửa đổi bên trong tệp zip tệp .vstemplate như sau:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>myproject_project</Name>
<Description><No description available></Description>
<ProjectType>VC</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>myproject_project</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="myproject_project.vcxproj" File="myproject_project.vcxproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="false" TargetFileName="$projectname$.vcxproj.filters">myproject_project.vcxproj.filters</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="myproject_project.cpp">myproject_project.cpp</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="ReadMe.txt">ReadMe.txt</ProjectItem>
</Project>
</TemplateContent>
<WizardExtension>
<Assembly>myprojectvstemplate, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=a0a3d031ed112d61</Assembly>
<FullClassName>myprojectvstemplate.IWizardImplementation</FullClassName>
</WizardExtension>
</VSTemplate>
Thật không may khi tôi cố tạo một dự án mẫu mới giao diện người dùng không hiển thị chút nào. Dự án vừa được mở và không có sự thay thế của tham số $ custommessage $.
Tại sao tôi không thể hiển thị GUI của trình hướng dẫn?
Ngoài ra: có cách nào để gỡ lỗi tại sao lắp ráp không được tải không ??
Tôi đã phải làm rất nhiều trickeries và máy móc nhưng cuối cùng tôi đã nhận nó để làm việc. Cảm ơn Paresh, mặc dù bạn chỉ cho tôi một gợi ý, cuối cùng tôi đã làm việc đó. –
Rất vui được trợ giúp :) – Paresh138