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

时间:2019-02-15 13:53:18

标签: .net iis windows-server-2012-r2

这个问题可能更多是关于我不懂术语而不是什么。作为参考,我来自“使用PHP / wordpress构建网站,然后将文件拖放到FTP-繁荣的网站作品”的背景

我已经构建了一个.NET应用程序,该应用程序在Visual Studio中本地运行。那里一切都很好。如果重要的话,它是使用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

我还认为有一些“构建”步骤,类似于在应用程序在此服务器上运行之前需要在VS中点击“运行”?

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

2 个答案:

答案 0 :(得分:2)

我认为您可能想尝试使用Visual Studio内置的“发布”功能。您应该能够将其指向您的服务器。我不记得这个过程涉及的所有内容,但是过去对我来说是有用的。

本文可能会有所帮助。

https://docs.microsoft.com/en-us/dotnet/core/tutorials/publishing-with-visual-studio

答案 1 :(得分:1)

通常,DLL文件不会提交给Git-仅提交源代码。

这就是为什么在您的服务器上,很有可能Bin文件夹为空,因此丢失了dll错误。

您是对的-您在这里缺少“构建”步骤。

如果服务器上有Visual Studio,则可以使用它来构建应用程序,这将根据源代码在bin文件夹中生成dll。

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

另一方面,我们不再使用虚拟机-我们使用Azure App Service。我们将其绑定到github存储库,然后将更改推送到存储库-Azure从github获取最新信息,构建解决方案并部署站点。

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

对于您而言,您将必须手动执行该步骤-在服务器上构建或仅自己复制dll文件。