5

いくつかのカスタム MVC プロジェクト タイプを追加する VSIX プロジェクトをビルドする方法について、この投稿をフォローしています。

http://www.asp.net/mvc/tutorials/mvc-4/custom-mvc-templates

いくつかの追加の Nuget パッケージも含めたいので、Nuget からこのページをフォローしていましたが、VS2010 用のようで、2012 年に作業しています。

私はプロジェクトを構築しており、すべてが私のマシンでうまく動作します。インストールが機能し、新しいプロジェクト タイプが表示され、このタイプの新しいプロジェクトを作成すると、すべてが完全に機能します。

しかし、インストーラーを同僚に送ると、問題が発生します。インストーラーは機能し、新しいプロジェクト タイプが表示されますが、プロジェクトを作成するときに、拡張ノードにパッケージをインストールできないというエラー メッセージが表示されます。拡張機能の製品 ID が正しいことを確認しました (テスト中に .vstemplate ファイルで意図的に不正な形式を使用したため、まったく別のエラーが発生しました)。パッケージを拡張マニフェストに追加しましたが、違いはないようです。また、.nupkg ファイルが %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE\Extensions にデプロイされることも確認しました。

何をすべきかについて何か提案はありますか?

カスタム プロジェクトの .vstemplate セクション

<WizardExtension>
    <Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
    <FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
</WizardExtension>
<WizardData>
    <packages repository="registry" keyName="AspNetMvc4VS11" isPreunzipped="true">
        <package id="EntityFramework" version="5.0.0" skipAssemblyReferences="true" />
        <package id="jQuery" version="1.8.2" />
        <!-- snip -->
    </packages>
    <packages repository="extension" repositoryId="SampleExtensionId">
      <package id="Unity" version="3.0.1304.0" targetFramework="net45" />
      <package id="Unity.WebAPI" version="0.10" targetFramework="net45" />
      <!-- snip -->
    </packages>
</WizardData>

source.extension.vsixmanifest 資産タグ

<Assets>
    <Asset d:VsixSubPath="ProjectTemplates\CustomMVCTemplate" etc/>
    <Asset Type="Unity.3.0.1304.0" Path="Packages\Unity.3.0.1304.0.nupkg" />
    <Asset Type="Unity.WebAPI.0.10" Path="Packages\Unity.WebAPI.0.10.nupkg" />
    <!-- snip -->
</Assets>

ファイル構造

  • 拡張プロジェクト
    • パッケージ
      • Nugetパッケージ1
      • NugetPackage 2
    • プロジェクトテンプレート
      • カスタムMVCテンプレート
        • <カスタム プロジェクト ファイル>
    • source.extension.vsixmanifest
4

3 に答える 3

5

Nuget パッケージを自動ダウンロードする VSIX を作成する方法について、段階的なビデオを作成しました。

http://www.youtube.com/watch?v=_ZvsFz41H-E

多くの手順があり、それらを書き留めたことがないため、ここには入力しません。私は間違いなく他の人のマシンで私の VSIX パッケージをテストしました。

于 2013-08-28T01:12:35.590 に答える
1

私を助けたこのリンクhttp://samritchie.net/2012/09/17/nuget-packages-in-vs2012-templates/をチェックしてください。ただし、すべての参照のパスが空であるという問題がまだ発生しています。

特に、上記のリンク先の記事の次のコメントに注意してください。

CustomExtension に相当する v2 が何であるかを解明するためにかなりの時間を費やしましたが、簡単に言うと、.vsixmanifest に変更を加える必要はありません。すべてのパッケージを含めるだけで十分です。 「パッケージ」ディレクトリの下の VSIX。

于 2013-07-27T00:12:49.633 に答える