无法在 .net 核心中发布二进制文件
Posted
技术标签:
【中文标题】无法在 .net 核心中发布二进制文件【英文标题】:Unable to publish binaries in .net core 【发布时间】:2016-07-05 14:10:37 【问题描述】:我正在尝试自托管 .net core MVC 应用程序。它适用于所有 .cs
文件。当我通过命令窗口发布它(dotnet publish -f netcoreapp1.0 -c release
)时,它显示以下错误:
找不到与“bower”匹配的可执行文件
我什至尝试使用 VS 发布。它生成二进制文件。但是当我在命令提示符下执行dotnet run
时,我会收到以下错误消息:
项目文件不存在'project.json'
谁能建议如何使用二进制文件进行自我托管?
【问题讨论】:
你如何解决 'dotnet run' 的问题? 【参考方案1】:从命令行运行dotnet publish
命令时,您必须确保您的路径变量包含所有相关位置。
如果您在 Visual Studio 中执行发布命令,并查看“构建”窗口中的输出,您会注意到它会在运行发布命令之前更新路径变量:
在命令行中,您可以通过 SET Path=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;
be 之类的操作来完成此操作
在 PowerShell 中您可以将其设置为
$env:path += ";C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;"
您还可以查看这个 GitHub 问题: No executable found matching command "bower"
至于你的dotnet run
问题,你必须在包含project.json文件的同一目录中执行这个命令,或者使用-p|--project
选项来指定项目文件的位置。在命令行中输入 dotnet run --help
以获取更多信息。
【讨论】:
它正在将二进制文件发布到“bin\Debug\netcoreapp1.0\win10-x64\publish”文件夹。当我看到这个位置时,我看不到“Project.json”文件。即使我将“project.json”文件复制到上述位置并在命令行中运行“dotnet run”。但它给出“系统找不到指定的文件”。 当你运行 dotnet publish 时,你会得到二进制文件(正如你所提到的)。 Project.json 在这种情况下不是必需的,因为您可以运行生成的 exe。【参考方案2】:我在 Ubuntu 机器上遇到了这个问题,这就是解决方法:
npm install -g bower
npm install -g gulp
我在这里找到了解决方法:https://github.com/dotnet/cli/issues/3293#issuecomment-222993063
【讨论】:
以上是关于无法在 .net 核心中发布二进制文件的主要内容,如果未能解决你的问题,请参考以下文章