如何在远程服务器上构建 .net 应用程序?

How do I build a .net application on a remote server?

这个问题可能更多的是关于我不懂术语。作为参考,我来自 "build a website in PHP/wordpress then drag and drop files into FTP - boom website works"

背景

我构建了一个在 Visual Studio 中本地运行的 .NET 应用程序。那里一切都很好。如果这很重要,它是使用 Sitefinity nuget 包构建的。

我启动了远程 windows 服务器并通过 IIS 管理器和我找到的教程配置了 IIS。我将我的应用程序文件(通过 Git)移动到该服务器并将其指向我的文件。我现在可以去 localhost/SitefinityTest 看看这个网站。

除了页面之外,我收到错误。我不认为这些是应用程序的错误(同样,在 VS 中本地工作非常好),但我部署它的方式有问题。

Could not load file or assembly 'Telerik.Sitefinity' or one of its dependencies. The system cannot find the file specified.

我的第一个想法是缺少某些东西。乍一看,packages 目录根本不存在,所以我将其从本地复制粘贴到我的服务器中。没变化。

- C:\SitefinityTest
  - SitefinityTest (this is where my server is pointing)
    - ... all my files
  - packages (this is the missing directory I manually copied over)
  .gitattributes
  .gitignore
  SitefinityTest.sln

我还认为有一些 "build" 步骤,类似于在 VS 中点击 "run" 需要在应用程序在此服务器上运行之前发生?

同样,这不是我的强项。我主要是一名前端开发人员,我了解 MVC 和代码并且可以实际构建应用程序,但我对幕后发生的事情没有任何基本了解。如果我做出了一些明显的错误假设,请告诉我。

通常不提交 DLL 文件 Git - 只提交源代码。

这就是为什么,在您的服务器上,很可能 Bin 文件夹是空的,因此出现缺少 dll 错误。

你是对的 - 你错过了这里的 "build" 步骤。

如果服务器上有 visual studio - 您可以用它构建应用程序 - 将从源代码生成 bin 文件夹中的 dll。

如果没有,您可以手动将整个 bin 文件夹从本地主机复制到服务器。

附带说明一下,我们不再使用 VM - 我们使用 Azure 应用服务。我们将它绑定到 github 存储库,当我们将更改推送到存储库时 - Azure 从 github 中提取最新信息,构建解决方案并部署站点。

我非常喜欢这个自动构建选项。

在您的情况下,您必须手动执行该步骤 - 在服务器上构建或自己复制 dll 文件。