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

问题描述 投票:1回答:2

这个问题可能更多是关于我不了解术语而不是任何事情。作为参考,我来自“在PHP / wordpress中构建一个网站然后将文件拖放到FTP - 繁荣网站工作”的背景

我已经构建了一个在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.

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

- 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和代码,实际上可以构建一个应用程序,但我对幕后的事情没有任何基本的了解。如果我做了一些明显错误的假设请告诉我。

.net iis windows-server-2012-r2
2个回答
1
投票

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

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

你是对的 - 你错过了这里的“构建”步骤。

如果您在服务器上有可视工作室 - 您可以使用它构建应用程序 - 这将从源代码生成bin文件夹中的dll。

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

另外,我们不再使用VM了 - 我们使用Azure App Service。我们将它绑定到github仓库,当我们将更改推送到repo时 - Azure从github获取最新信息,构建解决方案并部署该站点。

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

在您的情况下,您将不得不手动执行该步骤 - 在服务器上构建或只是自己复制DLL文件。


2
投票

我想你可能想尝试使用Visual Studio内置的“发布”功能。您应该能够将它指向您的服务器。我不记得这个过程中涉及的是什么,但它在过去对我有用。

这篇文章可能有帮助。

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

© www.soinside.com 2019 - 2024. All rights reserved.