Tag: 部署

部署项目不更新.exe

我有一个Winforms项目,其中包含一个.exe文件作为主要输出。 我正在使用部署项目来分发它,但是在安装新版本时没有更新.exe文件,这意味着我必须要求用户手动卸载然后安装新版本。 这就是我正在做的事情: 我在输出项目(这是部署项目的主要输出)上增加程序集版本 我增加了部署项目版本(并在出现提示时更新产品代码) 部署项目设置为删除以前的版本 .exe上的’Permanent’属性设置为False 我确信在成功之前我已经做到了,但我现在似乎无法做到这一点。 我究竟做错了什么? 编辑:我通过更改项目属性中的文件版本来实现它,就像在这个答案中一样

在Web服务器上部署可执行进程的最佳方法是什么?

原来的问题: 这个问题的标题可能有点笨拙,但这是情况: 我在我的服务器上部署了一个.NET Web项目。 它还处于测试阶段,因此发布了大量的释放和重新发布。 我还在服务器后台运行的同一VS解决方案(称为“admin.exe”)中编写了一个C#可执行文件,定期执行某些业务规则完整性检查并对数据库中的警告表进行适当的插入。 问题是:部署此应用程序的最佳方式是什么,以便每当我发布新版本时它都会更新? 它应该在不同版本之间一直运行,所以理想情况下我想要某种设置,其中shutdown-deploy-startup过程涉及尽可能少的步骤。 谢谢! 编辑 – 赏金开始了 到目前为止给出的答案是有用和有趣的,但没有为我提供一个清晰,简洁和优雅的解决方案。 请不要假设我对部署项目有广泛的了解,因为我没有。 赏金给能够提供以下解决方案的人: 发布最新版本的网站; 关闭服务器上运行的任何admin.exe实例; 更新admin.exe; 启动admin.exe; 所有这些都应该优选地在一个步骤中完成,或者尽可能少地完成,看到它将在产品的整个寿命期间重复进行; 和 所有上述操作都应该优先完成,无需安装任何第三方软件。 谢谢您的帮助! 次要编辑 – 澄清 我认为到目前为止提供的很多解决方案都高估了问题的复杂性,所以让我澄清一下:所有要部署的东西,只需要部署在一台计算机上,也很高兴Visual Studio可以使用所有源代码。 我只需要(1)将网站发布到web文件夹,(2)关闭,重新安装并重新启动同一服务器上的admin.exe。 有没有一个简单的方法一步到位? 是否可以使用VS部署项目完成?

根据机器名称选择设置

当我们部署应用程序时,通常有一个单独的机器用于生产和开发。 大多数应用程序都在常规.NET App.config或Web.config文件中进行设置。 例如: 我们希望应用程序在两组设置之间自动选择,具体取决于机器。 有这样做的标准方法吗? 其他建议欢迎。

数据库部署问题

我在部署我的网站时遇到了困难。 我遇到了一些错误,他们得到了解决,我成功发布了我的网站但是当我尝试打开任何页面时,它给了我404或500错误 我的主机提供商告诉我,如果这个页面使用的是数据库并且没有部署,那么这可能就是问题所以我试图部署我的数据库,我得到了connectionString错误。 问题是我没有将我的connectionString存储在web.config中它存储在我的基本DAL类的属性中,它被所有DAL类使用,所以我更新了它但是我得到了同样的错误 我不知道什么是错的,我应该在web.config中包含connectionString吗? 注意当我构建软件包并尝试将活动模式设置为“release”时,它将设置恢复为“debug”!

添加/更改哪些程序集以将Silverlight Web应用程序部署到Windows Azure ?

我有一个基于silverlight的应用程序,包含使用silverlight工具包的图表,并使用RIA服务(域服务类,ADO.NET实体模型)连接到数据库。 我想在线将其部署到我的windows azure帐户。 我最近遇到过 角色的实例1网站很忙 角色网站的实例1是骑自行车 我一次又一次地遇到这个问题。 注意:我的Windows Azure SDK已更新,我已经部署了基于MVC的应用程序。 这个SOF答案指导我应该添加这些程序集: https : //stackoverflow.com/a/8966859/1319922 但这些是基于MVC的项目,我的基于Silverlight(使用C#)。 我还需要添加任何组件吗? 我的项目也可以在Local Host中正常工作。 我还需要设置一些程序集CopyLocal = true吗? 如果是,那是哪一个? 为什么我无法部署我的应用程序(并获得上述错误),还有其他问题吗? 请回复谢谢

从两个不同的位置安装ClickOnce应用程序

我有一个在.NET Framework 3.5,Service Pack 1中使用C#开发的Windows窗体应用程序。可以基于开发数据库和生产数据库发布应用程序。 我正在使用MSBuild社区任务来发布我的应用程序。 将应用程序发布到不同位置(即开发位置和生产位置)时,我不会遇到任何问题。 问题: 将开发应用程序安装到我的机器后,我无法安装生产应用程序。 它给我一个错误说: 您无法从此位置启动应用程序TEST,因为它已从其他位置安装 问题:机器如何理解我正在尝试安装相同的应用程序? 我认为它有某种应用程序ID。 如果是这种情况,我可以根据位置覆盖相关值。 (DEV或PROD) 在我的应用程序的项目文件中发布时的当前代码: \\A\B\development\ Data Source=SQL-DEV.company.com; Database=TEST;Uid=XYZ;Pwd=ABC; \\A\B\production\ Data Source=SQL-PROD.company.com;; Database=TEST;Uid=XYZ;Pwd=ABC; 应用程序的发布就像一个魅力,并指向相关的数据库。 我现在要做的就是能够在同一台机器上安装开发应用程序和生产应用程序而不会出现任何错误。 问题:一次应用程序与另一次应用程序的区别是什么?

在安装时更改app.config

如何动态更改app.config文件中的connectionString? 我有一个用Windows窗体,c#3.0和Linq到Sql编写的应用程序。 我需要在安装应用程序时更改连接字符串。 我是怎么做到的 当用户安装程序时,它必须显示一个表单,如果存在,则可以选择更改连接字符串,如果不存在则添加一个。

如果应用程序在安装后第一次运行,请检查条件

C#2008 / 3.5 SP1 我想检查应用程序是否第一次运行。 我已经开发了一个应用程序,一旦安装在客户端计算机上。 我想检查它是否是第一次运行。 我已经安装了使用Windows安装程序项目。 if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment.IsFirstRun) { // Do something here } 上面的代码适用于clickonce开发。 但是我怎么能用Windows安装程序做类似的事情。 我想在应用程序安装时添加一个注册表。 当程序第一次运行时(true),请检查此注册项目。 一旦它第一次运行,编辑注册表为(false)。 但是,而不是使用注册表,有没有更好的方法,我可以使用?

禁止/禁用/解决Visual Studio构建警告

我正在使用clickonce的Windows窗体应用程序。 我必须部署一些资源程序集。 这些程序集位于我的项目中的文件夹中(不作为参考)。 它们标记为BuildAction = content,CopyToOutputDir = Copy If Newer。 使用此配置,我收到警告MSB3178:程序集”被错误地指定为文件。 当我将BuildAction设置为none时,警告消失,但必须部署的程序集不会出现在ClickOnce Application Files中。 我希望在没有此警告的情况下在clickonce的发布中添加这些程序集(有很多),并且不在项目中添加这些dll作为引用。 我研究了很多,但找不到禁用警告的解决方案。 编辑: 仅当我在“项目/属性/安全性选项卡”中设置“启用Clickonce安全设置”=“True”时才会出现警告 样本项目: 单击下载示例项目 只需构建并检查警告。

ClickOnce部署会留下多个版本(是的,超过两个版本)

我有一个ClickOnce应用程序,它将所有旧版本留在我的磁盘上。 这是一个经常更新的内部企业应用程序,因此这对于快速扩大我们的备份大小来说是一场灾难。 根据文档和其他Stack Overflow问题,它应该只保留当前和以前的版本在磁盘上。 但是,每次部署项目并升级客户端时,我都会获得所有EXE,DLL和数据文件的另一个副本。 我没有对应用程序进行任何更改,只是在Visual Studio中再次推送部署。 我该如何解决这个问题? 问题似乎发生在Windows 7和Windows XP以及64位和32位Windows上。 我已经完成了安装版本的文件夹的差异,以下文件是不同的: MyApp.exe.manifest MyApp.exe.cdf-ms MyDll1.cdf-ms MyDll2.cdf-ms 没有实际的可执行文件,也没有MyApp.manifest , MyDll1.manifest等。 如何替代。 在运行时查找包含我的应用程序的其他文件夹并删除它们是否安全? 这会打破什么吗? ClickOnce只是一个明显神秘的黑盒子吗?