Hello all,
I'm trying to deploy my first app to AppHarbor (an MVC3 app), but I'm continually running into a build issue. It appears I'm somehow missing an assembly reference to Ninject. I haven't done anything weird (that I'm aware of). I just installed Ninject into my MVC 3 app via NuGet and have since updated it (from v2.1.0 to 2.2.1). I've included the packages folder that NuGet creates within my repo, so that should be getting pushed to the server. Additionally, none of my other NuGet packages seem to be causing any problem, just Ninject.
Here are the steps I've taken in an attempt to rectify the situation:
-
Double checked that my solution is building locally.
-
Re-running all my unit/integration tests to ensure that they pass.
-
Unloaded my web project to ensure there wasn't some funky absolute path. Everything looks fine there.
<Reference Include="Ninject">
<HintPath>..\packages\Ninject.2.2.1.0\lib\.NetFramework
4.0\Ninject.dll</HintPath> </Reference>
I'm stumped. I can't see any reason it shouldn't build on AppHarbor's server, but I can't get it working, and I haven't run into any other issues with other NuGet packages.
I thought about putting the Ninject dll's into a separate lib folder in my project root, but I'd rather not do that if I don't have to, as everything else has been managed with NuGet's convention (put everything in "packages").
Has anybody else run into anything like this? Thanks in advance for your help!
#1 Posted by friism Support staff on 17 May, 2011 10:02 PM
Could you please post the build error? Also, feel free to invite [email blocked] as a collaborator on the project.
#2 Posted by JasonOffutt on 17 May, 2011 10:09 PM
Thanks Michael! Was there a specific collaborator email I should add? Doesn't seem to find ***@appharbor.com.
I've got a few things tagged as [Obsolete] in my code to get refactored later on, so just ignore those warnings. :)
Here's the build error:
Build started 5/17/2011 9:54:29 PM.
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.sln" (default targets):
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.sln" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Web\JordanRift.Grassroots.Web.csproj" (default targets):
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Web\JordanRift.Grassroots.Web.csproj" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Framework\JordanRift.Grassroots.Framework.csproj" (default targets):
Entities\Membership\GrassrootsMembershipProvider.cs(97,30): warning CS0809: Obsolete member 'JordanRift.Grassroots.Framework.Entities.Membership.GrassrootsMembershipProvider.ChangePasswordQuestionAndAnswer(string, string, string, string)' overrides non-obsolete member 'System.Web.Security.MembershipProvider.ChangePasswordQuestionAndAnswer(string, string, string, string)'
Done building project "JordanRift.Grassroots.Framework.csproj".
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Web\JordanRift.Grassroots.Web.csproj" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Framework\JordanRift.Grassroots.Framework.csproj" (default targets):
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Web\JordanRift.Grassroots.Web.csproj" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Framework\JordanRift.Grassroots.Framework.csproj" (GetNativeManifest target(s)):
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Ninject". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
Global.asax.cs(9,7): error CS0246: The type or namespace name 'Ninject' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(12,7): error CS0246: The type or namespace name 'Ninject' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(13,7): error CS0246: The type or namespace name 'Ninject' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(19,17): error CS0246: The type or namespace name 'IKernel' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(21,42): error CS0246: The type or namespace name 'IKernel' could not be found (are you missing a using directive or an assembly reference?)
Done building project "JordanRift.Grassroots.Web.csproj" -- FAILED.
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.sln" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Tests\JordanRift.Grassroots.Tests.csproj" (default targets):
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Tests\JordanRift.Grassroots.Tests.csproj" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Framework\JordanRift.Grassroots.Framework.csproj" (default targets):
__________________________________________________ Project "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Tests\JordanRift.Grassroots.Tests.csproj" is building "D:\temp\fgmii5vy.zua\input\JordanRift.Grassroots.Web\JordanRift.Grassroots.Web.csproj" (default targets):
Entities\Membership\GrassrootsMembershipProvider.cs(97,30): warning CS0809: Obsolete member 'JordanRift.Grassroots.Framework.Entities.Membership.GrassrootsMembershipProvider.ChangePasswordQuestionAndAnswer(string, string, string, string)' overrides non-obsolete member 'System.Web.Security.MembershipProvider.ChangePasswordQuestionAndAnswer(string, string, string, string)'
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Ninject". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
Global.asax.cs(9,7): error CS0246: The type or namespace name 'Ninject' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(12,7): error CS0246: The type or namespace name 'Ninject' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(13,7): error CS0246: The type or namespace name 'Ninject' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(19,17): error CS0246: The type or namespace name 'IKernel' could not be found (are you missing a using directive or an assembly reference?)
Helpers\NinjectDependencyResolver.cs(21,42): error CS0246: The type or namespace name 'IKernel' could not be found (are you missing a using directive or an assembly reference?)
Time Elapsed 00:00:01.89
#3 Posted by JasonOffutt on 17 May, 2011 10:20 PM
Nevermind about the collab email. Added support as a collaborator to my project. I had a feeling he support discussion thread would mask the email address, but couldn't find the original. :)
#4 Posted by friism Support staff on 17 May, 2011 11:03 PM
I've just tried checking out your project. It doesn't build. The Ninject reference in the web project is broken (running
install-package ninjectseems to fix it). There are also multiple broken references in the test project.You can try cloning your repository to a clean folder to see what AppHarbor i getting.
friism closed this discussion on 17 May, 2011 11:03 PM.