我有一个部署项目,不允许我安装旧版本.msi文件说首先从添加/删除程序卸载程序.这不是一个好的用户体验.我该怎么做才能让安装程序先删除软件然后安装新版本?
我有一个VS2008部署项目,它为几个Windows服务构建了一个安装程序.
每个服务引用几个不同的项目:
CustomerName.MailSendingService -> CustomerName.Network -> CustomerName.Data -> CustomerName.Security CustomerName.ProductIntegrationService -> CustomerName.Core -> CustomerName.Security
Windows服务项目,它们引用的项目以及部署项目都在同一个VS2008解决方案中.
我在部署项目的文件系统编辑器中添加了Windows服务项目的主要输出.
我的期望是Windows服务项目的主要输出将包括来自引用项目的DLL.但是,在构建部署项目时,缺少其中一个引用项目的DLL.(CustomerName.ProductIntegrationService缺失CustomerName.Security)
疯狂地,存在由Windows服务引用的其他项目的DLL; 只缺少一个项目的输出.
(编辑)我已经验证了引用在参考属性窗口中设置为Copy Local.引用项目的DLL放在Windows服务项目的bin\Release文件夹中,但未打包在为部署项目构建的MSI文件中.
(编辑2)根据Joseph Daigle的建议,我检查了依赖项是在主要输出的依赖项列表中,并且它没有标记为"排除",因此这似乎不是导致此问题的原因.
为什么只丢失一个项目的输出?
我正在学习VS 2008安装项目来为我们的C#应用程序创建安装.我在卸载过程中尝试删除exe本身时犯了一个错误.现在我手动删除了exe文件但该条目仍然在Add Remove Program列表中.我尝试安装一个固定的新版本,但msi不允许我这样做.
如何手动删除旧版本(我可以使用regedit,没问题)?我正在使用XP机器.谢谢
编辑:我删除其卸载注册表项中的子项后,我仍然无法安装我的新版本.

我已经能够使用Microsoft.Web.Deployment代码将文件放在我的IIS服务器上:
DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
DeploymentBaseOptions sourceBaseOptions = new DeploymentBaseOptions();
sourceBaseOptions.ComputerName = "localhost";
DeploymentBaseOptions destinationBaseOptions = new DeploymentBaseOptions();
destinationBaseOptions.ComputerName = ComputerName; // remote host
destinationBaseOptions.UserName = Username;
destinationBaseOptions.Password = Password;
DeploymentObject deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.IisApp, deployDirectory, sourceBaseOptions);
deploymentObject.SyncTo(DeploymentWellKnownProvider.IisApp, RemoteFolderName, destinationBaseOptions, syncOptions);
Run Code Online (Sandbox Code Playgroud)
似乎所有这一切都是在现有Web应用程序下创建一个新文件夹.如果我进入IIS管理器,右键单击我创建的文件夹,然后单击"转换为应用程序",然后我得到我正在寻找的行为.有没有人知道如何使用Microsoft.Web.Deployment包来做到这一点?
我有一个部署项目deployment.vdproj,我已经添加了project.csproj的项目输出.我想通过命令行构建deployment.vdproj.但是这样做时我需要为project.csproj指定一个属性(/ p :).我怎么这样?
我用devenv.com来构建deployment.vdproj,但我无法弄清楚如何传入project.csproj的属性
我使用的命令行是:
devenv.exe /build Debug deployment.vdproj
Run Code Online (Sandbox Code Playgroud)
这很好用.但我想指定project.csproj的输出路径.像/ p:OutputPath ="C:\ output"之类的东西.是否可以在构建deployment.vdproj时控制project.csproj的属性?如果是这样,我该怎么办?
我有一个Visual Studio 2005 .NET解决方案,它有20多个子项目,包括一个部署项目.VS2005 .NET部署项目具有许多检测到的依赖关系,已手动排除并手动添加更正值.
但有时,这些检测到的依赖关系会被神奇地排除在外,这会在构建时触发警告:警告:两个或多个对象具有相同的目标位置('[targetdir] \')
导致检测到的依赖关系被排除的触发器是什么?部署解决方案是否可以将其警告视为错误,以便每晚构建不会继续?
我已经为我的应用程序设置了一个部署项目.问题是我想在安装期间显示应用程序版本(例如MyApplication 1.2.3.1),以便用户在安装之前可以看到该版本.
我能想到的唯一方法是在Welcome对话框中修改WelcomeText.是否有更简单或更优雅的方式来实现这一目标?
当我尝试构建我的安装项目时,我收到以下错误:"验证时发生错误.HRESES ='80004005'"(并且微软赢得了一个清晰的奖项.)
我谷歌发现一大批开发人员遇到了同样的问题.真的错误应该是:"无法在你的某个项目中找到引用." 每个人都说(如果在StackOverflow上)如何使用损坏的引用找到项目:
我这样做,发现我的主可执行项目和主类库项目出现80004005错误.由于主可执行项目引用了主类库项目,我认为问题出在主类库项目中.
一旦找到该项目,人们会说要删除所有引用,并重新添加它们(这会修复任何似乎是导致此错误的主要原因的路径问题).事实上,我已经完成了解决方案中的所有项目,只是为了好的措施.我仍然得到80004005错误.
我用谷歌搜索了大约五个小时,我还没有找到任何其他建议的解决方案.我差不多要重建这个解决方案中的所有7个项目,这需要一个小时的时间来做,并不能保证结果.
在我开始牺牲一个小的可爱的生物给众神之前,建议是受欢迎的.
deployment installation deployment-project setup-deployment visual-studio-2008
我正在开发一个应用程序,我将在部署项目的帮助下部署它(它将创建一个安装程序).
在安装程序的一个步骤中,它将允许用户更改应用程序的安装文件夹.
我需要知道这个文件夹是什么,因为我需要从另一个DLL文件中保存一些文件.如何以编程方式获取此安装文件夹?
谢谢!
我在源代码控制下有一个解决方案,其中一个项目是vdproj(Visual Studio部署项目)或安装项目,每次我尝试构建解决方案时,这个项目给我带来了非常恼人的数十条消息
---------------------------
Microsoft Visual Studio
---------------------------
The command you are attempting cannot be completed because the file 'XXXXInstaller.vdproj' is under source code control and is not checked out.
---------------------------
OK Help
---------------------------
Run Code Online (Sandbox Code Playgroud)

问题是:如何从解决方案中卸载此项目,当我尝试卸载它时,右键单击上下文菜单中没有这样的选项!

c# ×4
.net ×3
deployment ×2
dependencies ×1
directory ×1
installation ×1
msbuild ×1
version ×1
windows ×1