Deploying code First app to AppHarbor - entity-framework

I have deployed an app to appharbor ,enabled package restore and I can see the packages are being restored , but the build still doesn't find the EntityFramework dll and some others.
Here is a part of the log:
Successfully installed 'DataAnnotationsExtensions 1.1.0.0'.
Successfully installed 'DotNetOpenAuth.AspNet 4.0.3.12153'.
Successfully installed 'DotNetOpenAuth.OAuth.Consumer 4.0.3.12153'.
Successfully installed 'DotNetOpenAuth.Core 4.0.3.12153'.
Successfully installed 'DotNetOpenAuth.OAuth.Core 4.0.3.12153'.
Successfully installed 'DotNetOpenAuth.OpenId.Core 4.0.3.12153'.
Successfully installed 'DotNetOpenAuth.OpenId.RelyingParty 4.0.3.12153'.
Successfully installed 'EntityFramework 5.0.0'.
Primary reference "EntityFramework".
2>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "EntityFramework"
What can be wrong ???

I had to manually change the references , and now it works . It was looking in ..\packages
It should be "packages".It looks like appharbor has some problem with EntityFramework 5 , I had to change to 4.3.1 to make it work.

It seems like the application is looking for the dll in the wrong place. Can you verify that the project reference to EntityFramework is pointing to the dll in your "packages" directory (rather than the GAC'ed assembly)?
Another developer had a similar issue and resolved it by fixing the reference paths.

Related

Error when installed Xamarin.CommunityToolkit: "The target platform must be set to Windows"

I'm trying to install Xamarin.CommunityToolkit(ver. 2.0.5) from Nuget Packages,
but I get this error message:
So I installed Xamarin.AndroidX.Lifecycle.LiveData with version 2.4.1.1, as it says
then I tried to install CommunityToolkit again, and again I've got the same message but with different compliant.
This time it wants me to install Xamarin.Google.Android.Materia(1.6.0).
I repeated the process a couple of times, and finally I was able to install CommunityToolkit successfully,
but then, when I build the project I get this:
I don't know what should I change to get rid of this error, it was working all fine before I installed this CommunityToolkit package
Here's my .csproj file:
I did try to add "net6.0-windows" to tag with various combinations, but with no effect.
Problem repeats on a newly created project aswell.
I'm using Microsoft Visual Studio Community 2022 (64-bit) Version 17.3.4
For MAUI use CommunityToolkit.Maui package instead of Xamarin.CommunityToolkit.
Official repo
Official docs

AutoMapper 6.2.2 restore fails on VSTS build server

The Restore step fails in my build definition with this error:
error NU1100: Unable to resolve 'AutoMapper (>= 6.2.2)' for '.NETCoreApp,Version=v2.0'.
This is in a .NETCoreApp 2.0 that is using AutoMapper. Restore succeeds locally in VS 2017. Locally I am using dotnet sdk 2.0.0, and nuget 4.3.1. On the VSTS (cloud) server, I am specifying the latest nuget version, 4.5.0. I have tried many other versions, including 4.3.1 with no success.
I know there is an older, similar question here, but that was never answered satisfactorily, in my opinion.
If I look at the meta data in VS, at the top of one of the Automapper files I can see this:
Assembly AutoMapper, Version=6.2.2.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005
// C:\Users\randyg.nuget\packages\automapper\6.2.2\lib\netstandard1.3\AutoMapper.dll
From this you can see it's taking the netstandard1.3 version, which is correct. I'm wondering if the nuget on the build server is looking for a netcoreApp2.0 folder, rather than the netstandard1.3 folder? Following this theory, I tried adding this to my .csproj file:
<AssetTargetFallback>$(AssetTargetFallback);netstandard1.3</AssetTargetFallback>
My theory was this would tell nuget to look for a netstandard1.3 version of automapper if it couldn't find a netcoreapp2.0 version. However, this didn't have any effect. I later read that behind the scenes this fallback is already added automatically.
If anyone has any ideas I would greatly appreciate it. I'm pulling out (what's left of) my hair on this, as this is the only package giving me trouble, and it's a critical one for my project.
On the build server I'm using .NET Core sdk 2.0.3 as well, if that matters.
This is how I solved this: since it seemed it might have to do with my target being netcoreapp2.0, I tried adding an additional 'dummy' project to my solution, with its target = netstandard1.3. In this configuration, the restore/build succeeded. I thought I would have to maintain this dummy project for this purpose, until I tried deleteing it and now the netcoreapp2.0 solution still restores fine without it. I can only assume something was corrupted in the TFS build server NPM cache (even though I had tried checking the box to disable that cache), and once I got it to succeed once, it has cleared up whatever the issue was.

Error on installing ASP.NET Identity 2 Samples

I'm trying to install ASP.NET Identity 2 samples project. I open Visual Studio 2013, create an empty ASP.NET project, open Package Manager Console and type:
Install-Package Microsoft.AspNet.Identity.Samples -Pre
After some time of installing it returns an error:
Unable to uninstall 'jQuery 1.10.2' because 'bootstrap 3.0.0' depends on it.
Ok, I type the installation command again. This time the error is:
Failed to add reference to 'System.Net.Http'. Please make sure that it is in the Global Assembly Cache.
All subsequent attempts to install finish up with the same error.
UPD: I have installed the samples successfully using "Manage NuGet Packages" UI. Still interested why it have not worked in console? Have I done something wrong?

Issue with NuGet Package Manager

I have a project that I recently converted over to use Entity Framework. I installed the package on my development machine and everything worked perfectly and I continued to re-vamp the project.
I recently pushed out the first update to my production server with the Entity Framework code in it. When I tried to build the solution it threw all kinds of errors, namely this one over and over:
Could not resolve this reference. Could not locate the assembly "EntityFramework". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. bamblack.viewmodel
I went into my NuGet Package Manager, and it says EntityFramework was installed. I then tried to install it through the Package Manager Console, said the same thing. So I then tried to uninstall it. It says it can't locate the package!
I'm sure it's because I didn't do the actual install on the production machine and it's just missing a DLL somewhere, but I'm not sure where. If anyone could point me in the right direction that would be great.
Seems that all I needed to do was un/reinstall the references to EF on my development machine and push it out again. Strange that it didn't push them out the first time. Issue was resolved.

The term 'Update-Database' is not recognized as the name of a cmdlet

I am using EF5 beta1 and while I was able to run the "Update-Database" before. Now that I shut down Visual Studio, I cannot get it to run. I get the following error:
The term 'Update-Database' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:16
+ Update-Database <<<< -verbose
+ CategoryInfo : ObjectNotFound: (Update-Database:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
I have tried to re-install EF5b1 and while was successful (already installed), the 'Update-Database' still does not work.
Can anyone help???
The solution is to close the Package Manager Console, close Visual Studio and then reopen them.
Rebooting also worked most of the time, but not always.
If you use Entity Framework:
Error Message:
"Error Message (from the Update-Database command in the PMC):
The term 'Update-Database' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again."
Solution:
Exit Visual Studio. Reopen project and try again.
For more information please visit: Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application (12 of 12)
For anyone who is using .Net Core and EntityFrameworkCore:
You will need to install Microsoft.EntityFrameworkCore.Tools package to resolve this issue.
Read more here: https://learn.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
Reinstalling the nuget package fixed this issue for me
ie, execute
Install-Package EntityFramework -Version 5.0.0
in the package manager
Sometimes when I load VS, I see this in my package manager console:
Value cannot be null.
Parameter name: path1
I have no idea what causes that yet but it seems that something goes wrong during the start-up of the Powershell console which interrupts the registering of specific modules, such as the EF powershell extensions. You can just manually load it however:
Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1
Make sure you replace 6.1.1 with whatever your current version of Entity Framework is.
you will get this error when the EF tools are not installed properly.
try the below command in Nuget package manager
//Uninstalls and install the same Version of EF
Update-Package "EntityFramework" -reinstall
If you still face the same issue.
create a new Web Project and run the below command in nuget.
(Note : no need to create the new Project in the same solution or
same location.)
// This will update EF to latest version(including the tools)
// if you want to use specific version , use the -version flag.
Update-Package "EntityFramework"
Once this is done, chcek your original project and you can delete the newly created project.
Just restart Visual Studio, it'll solve the problem. Works for me.
Install Microsoft.EntityFrameworkCore.Tools solved the issue for me, used nuget packages
I solved this by uninstalling and reinstalling Microsoft.EntityFrameworkCore and Microsoft.EntityFrameworkCore.Tools
I had this same problem, and the origin of it was on my path name, I had on my path a directory name with straight brackets, like this: C:\[PROJ]\TestApp.
When I removed the brackets, to C:\PROJ\TestApp, it started to work just fine...
Just ReOpen visual studio is work for me
For me the problem was the Nuget version.
uninstall Nuget Package Manager.
restart Visual Studio.
installed new version of Nuget Package Manager.
then re-start Visual Studio again.
This problem seems to happen when you open the project directly from File Explorer. Try starting VS first and then opening the project - worked for me. I'm guessing this is about access to paths.
Most of the time those beta versions have some issues, also if Entity Framework failed to load and also this can happen if you are install the Microsoft.EntityFrameworkCore.Tools globally. try to install it locally into your project
. you can try these steps until you fix the issue. and remember this method is not to fix the issue this is the other way to do this.
cd in to your project directory. not the sln directory to the project directory.
then dotnet ef to find out that you have correctly install the Entity Framework.
then use dotnet ef migrations add "ReplaceThisWithSomeText" command. And this will create new migration.
then use dotnet ef database update to update the database.
Migrations Overview. This will helps too..
Windows commands - cd
(This Is for EFCore projects)
If the other answers don't work (VS 2017): clear the NuGet cache, restart VS, then restore the packages.
I found that it was due to a corrupt package. I had installed Automapper when it was already installed. It was only clear that this package was corrupt when I tried to install another package.
Removing the corrupt package solved this issue for me.
You can then reinstall automapper. The issue was with version 5.4, I am now happily on 6.0.
For me it turns out EntityFramework core was not installed on my project (because i started with blank project). So installing EntityFramework package resolved the problem. Sometimes if EntityFramework installation failed then try to install individual packages one by one
E.g.
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
I solved by updateing Package Manager Console.
I was not getting Update-Database in Package Manager Console. Then i restart several time. Also restart Windows.
Then I download new one from nuget and then it was solved.
I had this problem in Visual Studio 2015 and resolved it by updating the version of Nuget.
Tools -> Extensions and Updates -> Updates -> Visual Studio Gallery
Simple fix for me was to make sure there was a dash between update and database, like this: update-database and use lowercase. It may be coincidental, but when I did this in Packet Manager Console, the database actually updated and I got the done message rather than the not recognized as the name of a cmdlet, function, script file error.
I started having the same issue after I accidentally opened a Visual Studio solution with Visual Studio 2015 instead of 2017. The project worked just fine before that mishap. It was an older project with EF 5.0 and not EF Core.
I tried everything suggested - restarted Visual Studio countless times, cleaned up NuGet cache, deleted everything in packages folder, reinstalled EF 5 for the project - no good, add-migration was not recognized. If I upgraded EF to 6, it started to recognize the commands, but I did not want to upgrade yet. So, as soon as I reverted back to EF 5, the problem returned.
The only thing that finally saved me was to do the following:
close Visual Studio
delete everything from packages folder
delete .vs folder in the root of your solution. This folder is usually hidden, you have to turn on Show hidden files and folders setting or check Hidden items in folder View tab
start Visual Studio and open your solution. It will ask to restore NuGet packages, agree to it.
Now EF commands finally started working again.
In my case:
Reload project did not help
Restart VS did not help
Restart computer did not help
Reinstal EF did not help
But I found an article where suggestion was to manualy import missing EF package, using PM Conole:
Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1
And this solution solved my problem.
In my case restarting Visual Studio (many, many times) did not work, then as I was looking elsewhere I found a message on the output terminal:
The current .NET SDK does not support targeting .NET Core 2.2. Either
target .NET Core 2.1 or lower, or use a version of the .NET SDK that
supports .NET Core 2.2.
So I installed the required version of .NET Core and the command ran successfully.
I had this problem in VS 2019 with an existing project using EntityFramework 6.3.0. This project had some strange version changes done to it over a period of time, and nothing would get it working. I believe I tried every suggestion listed here with no luck.
Finally, updating to the pre-release version of EntityFramework (currently 6.4.0-preview3-19553-01) did fix the problem, by running this in the Package Manager Console: Update-Package EntityFramework -prerelease. I'm hopeful that when this version is released live in the next few weeks it will work properly.
In my case, I did the following:
- restored missing NuGet packages by clicking "Restore" button on top of the Package Manager Console
- restarted Visual Studio
- run update-database
Restoring NuGet package didn't help me.
I had to reinstall package manager - https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca
For me the problem was the Nuget version.
I removed and re-installed Nuget then re-started Visual Studio and then all started working.