10

フル インストール オプションを使用して VS 2012 Premium をインストールしました。フォームまたは mvc バージョンのいずれかである新しい asp.net プロジェクトを作成し、プロジェクトをビルドして変更なしで実行しようとすると、次のエラー「アセンブリまたは参照がありません」が表示されます。

  • Antlr3.ランタイム
  • DontNetOpenAuth.AspNet
  • DontNetOpenAuth.Core
  • DontNetOpenAuth.OAuth
  • DontNetOpenAuth.OAuth.Consumer
  • DontNetOpenAuth.OpenID
  • DontNetOpenAuth.OpenID.RelyingParty-
  • Newtonsoft.Json
  • System.Web.Optimisation
  • ウェブグリース

これらは追加していません。これらはテンプレートの一部です。インストールに戻って確認したところ、すべてがインストールされているので、コンポーネントを除外していません。

VS2012 をインストールするときに私が見逃したものを知っている人はいますか? 何も見逃していなければ、Microsoft がアセンブリへの参照をテンプレートに含めて、プロジェクト テンプレートをビルドする前にそれらをダウンロードすることを期待するとは信じられません。

4

4 に答える 4

3

Nuget のインストールまたはローカル キャッシュに問題があると思います。

すべての VS2012 テンプレートには、サードパーティ ライブラリへの参照が含まれています (例: DontNetOpenAuthまたはNewtonsoft )。MVC4 プロジェクト テンプレートのサンプルを次に示します。

...
<WizardData>
    <packages repository="registry" keyName="AspNetMvc4VS11" isPreunzipped="true">
        ...
        <package id="DotNetOpenAuth.AspNet" version="4.0.3.12153" skipAssemblyReferences="true" />
        <package id="DotNetOpenAuth.Core" version="4.0.3.12153" skipAssemblyReferences="true" />
        <package id="DotNetOpenAuth.OAuth.Consumer" version="4.0.3.12153" skipAssemblyReferences="true" />
        <package id="DotNetOpenAuth.OAuth.Core" version="4.0.3.12153" skipAssemblyReferences="true" />
        <package id="DotNetOpenAuth.OpenId.Core" version="4.0.3.12153" skipAssemblyReferences="true" />
        <package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.0.3.12153" skipAssemblyReferences="true" />
        <package id="WebGrease" version="1.1.0" skipAssemblyReferences="true" />
        ...     
    </packages>

NuGet パッケージ用のローカル キャッシュがあることは知っています ( C:\Users\youraccount\AppData\Local\NuGet\Cache)。VS には Entity Framework のようなキャッシュが含まれています ( C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\NuGet Packages)

理由は不明ですが、新しいプロジェクトを作成すると、VS はこれらの外部参照を見つけることができなかったようです。

したがって、基本的に Nuget の最新バージョンを取得して、これらすべてのパッケージを少なくとも 1 回は取得してみてください。

于 2012-09-27T11:41:53.197 に答える
2

したがって、問題はTFSであることがわかります。

TFSにあったソリューションに新しいWebプロジェクトを追加していましたが、インターネットにアクセスできないため、TFSサーバーを利用できませんでした。VSはTFSに接続できなかったため、ローカルストアからのこれらのパッケージのインストールをロールバックしていました。したがって、私の問題。私は今朝インターネットアクセスでそれらを追加しました、そしてそれはうまくいきました。

話の教訓として、これらのプロジェクトテンプレートをソース制御ソリューションに追加する前に、TFSにアクセスできることを確認してください。

于 2012-09-28T06:52:40.520 に答える
0

これらのパッケージをNuGetでインストールします

于 2013-03-15T22:08:00.573 に答える
0

プロジェクトがソリューションの親ディレクトリに作成されたため、プロジェクトを移動したときに、まさにこれらの欠落した参照でこの問題が発生しました。

NuGet 構成を操作しても、これを解決できませんでした。それらは正常にインストールされたように見えました。

次に、元のプロジェクトの名前を変更し、元の名前で新しいプロジェクトを作成しました。これは正しく構築されました。次に、.csproj ファイルを調べたところ、ヒント パスが変更されていることがわかりました。これらは相対パスであり、無効になった理由を説明しています。

そう

<Reference Include="Newtonsoft.Json">
   <HintPath>..\<some parent directory>\packages\Newtonsoft.Json.4.5.6\lib\net40\Newtonsoft.Json.dll</HintPath>

に修正されました:

<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.4.5.6\lib\net40\Newtonsoft.Json.dll</HintPath>

これも手動でできると思います。

于 2014-07-03T15:19:52.667 に答える