如何在远程服务器上构建 .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 文件。
这个问题可能更多的是关于我不懂术语。作为参考,我来自 "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 文件。