2016-08-22 5 views
0

Я построил относительно простое веб-приложение ASP.Net Core, которое использует угловой 2 & бутстрап для передней панели и WebApi в качестве задней части.Публикация ядра ASP.Net с ошибкой NullReferenceException

Я могу создавать и запускать свое приложение локально (в IIS Express), но он работает очень хорошо, однако, когда я пытаюсь использовать меню Build -> Publish, я сталкиваюсь с NullReferenceExceptionError, который ужасно бесполезен. Вот результат при запуске публикации:

1>------ Publish started: Project: MyProject, Configuration: Release Any CPU ------ 
Connecting to C:\ProjectDir\MyProject\./bin/Release/PublishTest... 
rmdir /S /Q "C:\Users\UserName\AppData\Local\Temp\PublishTemp\MyProject86\" 
Environment variables: 
Path=%PATH%;.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git 
C:\Program Files\dotnet\dotnet.exe publish "C:\ProjectDir\MyProject" --framework net452 --output "C:\Users\UserName\AppData\Local\Temp\PublishTemp\MyProject86" --configuration Release --no-build 
Publishing MyProject for .NETFramework,Version=v4.5.2/win7-x64 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Publishing.targets(149,5): Error : Object reference not set to an instance of an object. 

1>Publish failed due to build errors. Check the error list for more details. 
========== Build: 0 succeeded, 0 failed, 3 up-to-date, 0 skipped ========== 
========== Publish: 0 succeeded, 1 failed, 0 skipped ========== 

Я пытался сделать FileSystem опубликовать как каталог на работающем сервере IIS, а также просто локальный каталог, и я получаю тот же результат в обоих эти случаи.

Я очистил свое решение, перестроил и перезапустил Visual Studio на случай, если он был в плохом состоянии. Я создал несколько разных профилей публикации, чтобы убедиться, что с ними что-то не было неправильно сконфигурировано (некоторые из них были созданы после перезапуска VS2015).

Кроме того, я обязательно обновил VS2015 после того, как у меня возникла эта проблема, и теперь я запускаю версию 14.0.25425.01. Обновление 3. У меня также установлены новейшие веб-инструменты.

Вот мой project.json файл:

{ 
    "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.0-rc2-3002702", 
      "type": "platform" 
     }, 
     "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final", 
     "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final", 
     "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final", 
     "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.0.0-rc2-final", 
     "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final" 
    }, 

    "tools": { 
     "Microsoft.AspNetCore.Server.IISIntegration.Tools": { 
      "version": "1.0.0-preview1-final", 
      "imports": "portable-net45+win8+dnxcore50" 
     } 
    }, 

    "frameworks": { 
     "net452": { 
      "imports": [ 
       "dotnet5.6", 
       "dnxcore50", 
       "portable-net45+win8" 
      ], 
      "dependencies": { 
       "aDependency": { 
        "target": "project" 
       } 
      } 
     } 
    }, 

    "buildOptions": { 
     "emitEntryPoint": true, 
     "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
     "gcServer": true 
    }, 

    "publishOptions": { 
     "include": [ 
      "wwwroot", 
      "web.config" 
     ] 
    }, 

    "scripts": { 
     "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

Я искал кого-то с этой проблемой, и я полагаю, что я нашел один или два других местах, где это, кажется, встречались, но я гавань не нашел никого, кто ответил бы с решением или даже теорией о том, что происходит точно. Любая помощь, теории или выводы будут оценены.

Спасибо за ваше время.

EDIT: Как было предложено в комментариях, я создал новое приложение ASP.NET Core с момента выпуска 1.0.0 и рассмотрел различия. Он работал, и я чувствую себя глупо, не хватает на это, во всяком случае, для всех, кто работает в этом (хотя и временно ограниченный) вопрос, вот фиксированный файл project.json:

{ 
    "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.0", 
      "type": "platform" 
     }, 
     "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
     "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
     "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
     "Microsoft.Extensions.Logging.Console": "1.0.0", 
     "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.0.0", 
     "Microsoft.AspNetCore.Mvc": "1.0.0", 
     "Microsoft.AspNetCore.StaticFiles": "1.0.0" 
    }, 

    "tools": { 
     "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
     "netcoreapp1.0": { 
      "imports": [ 
       "dotnet5.6", 
       "dnxcore50", 
       "portable-net45+win8" 
      ], 
      "dependencies": { 
       "aDependency": { 
        "target": "project" 
       } 
      } 
     } 
    }, 

    "buildOptions": { 
     "emitEntryPoint": true, 
     "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
     "configProperties": { 
      "System.GC.Server": true 
     } 
    }, 

    "publishOptions": { 
     "include": [ 
      "wwwroot", 
      "web.config" 
     ] 
    }, 

    "scripts": { 
     "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 
+3

Я думаю, вы должны обновить свое приложение с RC2 до 1.0.0, и вам может понадобиться создать новое веб-приложение с 1.0.0 и новейшие шаблоны инструментов/vs от http://dot.net, а затем сравнить project.json и код запуска для вашего существующего приложения и обновите существующее приложение –

+0

Это был ответ. Я обновляю сообщение с фиксированным файлом project.json. – Kevek

+0

Я повторно опубликовал свой комментарий в качестве ответа, если вы хотите отметить его как ответ, который я бы ему признал –

ответ

1

Я думаю, вы должны обновить приложение из RC2 до 1.0.0, и вам может понадобиться создать новое веб-приложение с 1.0.0 и последние шаблоны инструментов/vs от dot.net, а затем сравнить project.json и код запуска с вашим существующим приложением и обновить существующее приложение.