由于 Mac 上的 Windows,启用迁移不工作

Enable-Migrations Not Working Because of the Windows on Mac

我是 Mac 用户,但想通过 Visual Studio 使用 C# 进行开发。因此,我有一个 Parallels 帐户,它是一个在使用时将 OS 切换到 Windows 的程序。

首先,让我介绍一下我遇到的错误:(尝试从 NuGet 包管理器内的包管理器控制台执行此操作)

Cannot determine a valid start-up project. Using project 'CodeFirstNewDatabaseSample' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information.

Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file://\Mac\Home\Desktop\Visual Studio 2015\Projects\CodeFirstNewDatabaseSample\packages\EntityFramework.6.1.3\tools\E ntityFramework.PowerShell.Utility.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)" At \Mac\Home\Desktop\Visual Studio 2015\Projects\CodeFirstNewDatabaseSample\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:780 char:62 + $utilityAssembly = [System.Reflection.Assembly]::LoadFrom <<<< ((Join-Path $ToolsPath EntityFramework.PowerShell.Utility.dll)) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

You cannot call a method on a null-valued expression. At \Mac\Home\Desktop\Visual Studio 2015\Projects\CodeFirstNewDatabaseSample\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:781 char:50 + $dispatcher = $utilityAssembly.CreateInstance <<<< ( + CategoryInfo : InvalidOperation: (CreateInstance:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull

Exception calling "CreateInstanceFrom" with "8" argument(s): "Could not load file or assembly 'file://\Mac\Home\Desktop\Visual Studio 2015\Projects\CodeFirstNewDatabaseSample\packages\EntityFramework.6.1 .3\tools\EntityFramework.PowerShell.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)" At \Mac\Home\Desktop\Visual Studio 2015\Projects\CodeFirstNewDatabaseSample\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:809 char:31 + $domain.CreateInstanceFrom <<<< ( + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

VS2015 目前已下载到我的系统上。我有一个模型 class 和一个本地数据库,但从现在开始我希望能够通过迁移更改数据库。但是,我在实现它时遇到了麻烦,我认为背后的原因是 Windows 在 Mac 上,正如 this question 所暗示的那样。我是这样想的,因为当我想在 Windows 系统上访问我的 Visual Studio 项目时,我从 'Mac'(Y:)[ 上名为 Home 的目录进入=29=] 在 网络位置 下(我遵循的确切路径是 'Mac'(Y:)[在网络位置选项卡下]->文档->Visual Studio 2015)。同样,正如问题的答案所建议的那样,我将其剪切并粘贴到我的 Windows 系统的桌面上。但后来我意识到,我只能从计算机目录中的网络位置选项卡访问桌面。

我希望任何人以前遇到过同样的问题并解决了所以他可以帮助我。

等你的好答案,

谢谢,

我有相同的配置 (OSX + Parallels) 并且遇到了与您相同的问题。当源代码位于 OSX 共享文件夹时,EF 包管理器控制台会抛出该消息。正如您的 link 所述,问题不在于 Mac+Parallels,而是代码位于网络位置。

如果您将代码移动到您的 VM 桌面,如果 Paralells 配置为在 Mac 和 Windows 之间共享桌面,它可能仍然是网络位置。只需尝试一些纯 windows 位置,如 C:\VsProjects

我最终将代码移动到 Windows 位置,它对我来说效果更好,但如果你想将代码保留在网络文件夹中,只需要使用 -StartupProjectName 并在那里明确指定可执行项目.

对我来说,问题是未识别 DataAccessLayer 项目。我必须特别指定 -ProjectName 然后迁移工作。

Enable-Migrations -ProjectName <Project>.DataAccessLayer -StartUpProjectName <Project>.WebApi -Verbose