我正在开发一个asp.net网站,需要定期更新源代码和HTML方面。完成必要的更新后,我使用“发布网站工具”并将网站发布到我的本地目录。然后我将所有文件上传到远程文件。
有没有办法用刚更改的文件修复我的网站。例如,如果我只更新了84个文件(HTML或源端),是否可以更新这两个文件而没有任何问题?
答案 0 :(得分:6)
虽然Visual Studio确实提供了一些不同的编译/构建选项,但我认为您可能正在为Visual Studio网站项目做好一切。当我使用网站而不是Web应用程序时,我只会FTP已经更改的文件。例如,如果我要在.aspx页面中更改一些HTML标记,则只需要将该页面上载到Web服务器。如果我更改.aspx.cs页面中的Page_Load函数,那么我肯定也需要在Web服务器上获取更新的DLL。
我使用FileZilla作为我的FTP工具,并且可以选择仅上传更改的文件。因此,在使用visual studio发布您的网站后,您可以获取该目录的全部内容并将其拖到FTP服务器位置,并仅更新已更改的内容。
答案 1 :(得分:2)
ASP.NET网站项目在项目属性中提供了一个选项 - > “MSBuild选项”标签页,您可以在其中设置“允许此预编译站点可更新”。
设置此选项
“指定.aspx的内容 页面不会编译成 部件;而是留下了标记 原样,允许您更改HTML和 客户端功能之后 预编译网站。选择 此复选框相当于添加 -u选项 aspnet_compiler.exe命令。“
根据文档。
答案 2 :(得分:1)
这取决于项目的类型。
如果是使用文件>创建的项目新网站然后可以复制更改的.aspx文件(确保相应的代码 - .cs - 文件也被复制)。
如果项目是使用文件>创建的新项目> ASP.NET Web应用程序然后您将需要从项目内的bin文件夹中复制.aspx文件和已编译的项目dll(默认情况下,dll与项目的名称相同,如TestProject.dll)。 / p>
答案 3 :(得分:1)
我对VStudio的可用工具完全不知所措。而我正在使用Gulp。 即使在2017年,问题仍然存在。
随着吞咽,你可以"观看"更改文件的目录,所以我将它配置为观察[bin]文件夹,以及与aspx / cshtml文件分开的资源。
每当我更改任何内容时,它会立即复制到我的发布文件夹,我可以稍后将其压缩并仅部署更改集。该脚本甚至有延迟,所以我可以在捆绑包的情况下延迟复制/上传,它们是动态生成的,需要一些时间才能完全修改。
我唯一要做的就是在开始下一个里程碑之前清理它,以便"发布" gulp" auto部署的文件夹"为空并为下次运行做好准备。清空文件夹并运行" gulp watch"在背景中似乎是为这样一个必要的功能付出的小代价。
我觉得这应该是一个很好的项目,可以作为vstudio插件开发。
答案 4 :(得分:0)
使用Visual Studio发布网站时,有一个选项显示“允许此预编译网站可更新”。如果选择此选项,则可以在HTML中进行一些更改而不是代码。 Programming Tutorials
答案 5 :(得分:0)
最近我被迫从linux / node / angular转移到Windows / C#/。NET / MVC环境。叹。我发现以下解决方案(下一段)消除了使用Visual Studio“发布”代码时引起的痛苦。 VS2017发布过程会将整个应用程序中的每个文件复制到Web服务器,即使一个文件中只更改了一个字符也是如此。对于中等大小的应用,这可能需要一个多小时。
这就是我的工作。我首先在本地发布解决方案(通常发布到bin / release / Publish /)。发布到服务器需要大约1分钟,而不是1小时。然后,我使用FreeFileSync在本地发布目录和服务器目录之间比较文件。 FreeFileSync非常棒-而且免费。我可以通过Windows文件共享访问服务器目录。比较大约需要15分钟。然后,我可以确切地看到哪些文件不同,需要推送。请注意,我使用的选项将比较文件的实际内容,而不仅仅是创建时间。然后,我使用FreeFileSync同步功能(镜像选项)将一些所需的文件复制到服务器。这可能需要两分钟。因此,总操作大约要花费Visual Studio“发布”所需时间的20%。但最重要的是,产品服务器上的实际命中仅是复制diff文件所需的两分钟,而不是Visual Studio Publish在复制每个文件时遇到的1小时停机。
答案 6 :(得分:-1)
我认为你需要一些东西http://winmerge.org/ 它将比较已更改的文件并上传它们。
希望这会有所帮助