我见过关于VDPROJ文件生成的MSI文件的混乱行为.如果我在Visual Studio中构建我的MSI,然后右键单击并从Visual Studio中选择"安装",它将自动卸载已安装的任何版本,然后安装新的MSI.
但是,如果采用生成的MSI并直接运行它,如果已经安装了以前的版本,它将会抱怨.我必须先显式卸载它(在"添加/删除程序"中).
这是怎么回事?是否有Visual Studio执行MSI的命令行参数?
使用VS 2010或2013,我们可以使用此命令构建.vdproj项目(VSI):
<Exec Command=""$(ProgramFiles)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" your.vdproj /build "Debug|AnyCPU""/>
Run Code Online (Sandbox Code Playgroud)
但是在vs 2015中,VSI是vs.的扩展.类似的命令(9.0 => 14.0)将会出错.
有人知道怎么解决吗?
我正在使用VisualStudio2005和vdproj来创建一个简单的MSI文件.我需要在启动它时传入REINSTALLMODE属性.
我知道这可以通过命令行完成,如下所示:
msiexec.exe /i foo.msi REINSTALLMODE=amus
但是,如果用户选择直接单击msi(启动向导),则不会传递该属性.是否可以通过VS和vdproj执行此操作?
我调查过的一些选项:
谢谢你的建议.
我已经习惯了使用nant进行构建版本.但我已经开始使用asp.net MVC,我选择使用.vdproj进行安装设置.
但是,当我打电话给:
< exec program="${dotnet.dir}/msbuild.exe" commandline='"./Wum.sln" /v:q /nologo /p:Configuration=Release' />
在nant,我的结果是:
[exec] D:\My Documents\Visual Studio 2008\Projects\Wum\Wum.sln : warning MS B4078: The project file "Wum.Setup\Wum.Setup.vdproj" is not supported by MSBuild and cannot be built.
有人有一些线索或解决方案吗?
如果我使用devenv,我会有问题吗?
我们的产品目前通过4-5 MSI安装,这些MSI是.vdproj根据vs 2010项目的输出和合并模块中的其他信息创建的.
我一直在寻找InstallShield和WIX作为可能的替代品,因为VS2012不再支持VS Setup Projects(哦不!)所以我们必须找到别的东西.
我已经玩过InstallShield了,我无法真正掌握它,除了安装产品之外,安装程序还必须接受一些参数,如数据库名称和位置等.我不能似乎找到了将此信息导入InstallShield项目的方法 - 虽然这是为Visual Studio使用InstallSHield限量版
我不确定哪个最好用?有没有人有从VDPROJ转换为WIX或IS的经验?
编辑 看起来WIX将是最简单的,我正试图掌握它.我似乎无法找到任何有用的帖子,允许我将项目输出定向到我的WIX安装程序,以及如何创建变量.(不使用插件)
windows-installer installshield wix vdproj visual-studio-2010
我读了几个关于通过命令行构建mergemodules的Stackoverflow问题,但当有人建议使用devenv进行编译或使用Dark从现有的msi文件创建wix文件时,所有这些都被接受了.
考虑以下因素:
...如何在没有devenv的情况下从命令行构建合并模块,并且不会失去在visualstudio中为mergemodule解析自动化依赖关系的舒适度?也许有一个我没有找到它的nanttask?
我正在尝试打开一个开源项目,并且在尝试打开项目的某个组件时遇到错误.我正在使用Visual Studio C#2008 Express Edition,我正在打开一个.sln文件.文件的那一部分打开正常,但是当我进入IDE时,我立即受到了错误的欢迎:
...无法打开DinamapSetup.vdproj',因为此版本的应用程序不支持其项目类型(.vdproj).
我一直在寻找打开这个文件可能需要的东西,但我还没弄清楚.我发现它是一个"安装和部署项目"文件,但我似乎无法获得有关保持此功能的信息.
快递版不支持这不是文件扩展名吗?我使用的是错误版的visual studio吗?
我正在更新通过安装和部署项目安装的现有应用程序.
旧应用程序在安装期间将配置和数据库文件复制到Program Files中的应用程序文件夹中.这在Win 2000和Win Xp(在本地管理员帐户下)下工作正常.然而,在Windows 7中,这不仅令人不悦,而且由于UAC,它基本上不起作用.
所以我想更新应用程序以在CommonApplicationData中编写其配置/数据.在现有的"安装和部署"项目中,您可以轻松选择某些位置作为复制文件的目标.即应用程序文件夹,用户桌面和用户程序文件.
我没有看到一个类似的方法告诉安装程序复制到AppData/CommonApplicationData文件夹.这是否存在,如果没有,是否有任何简单的修复?
谢谢!
我有一个用于Web应用程序的Visual Studio 2010解决方案,其中包含构成Web应用程序的所有项目,以及构建安装程序的.vdproj文件.所有文件都在配置管理下.
每当我编译此解决方案而不更改任何源代码时,Visual Studio将检出.vdproj文件并进行更改.PackageCode至少会更改为a到不同的GUID.在其他时候,除了更新PackageCode之外,它还将更改.vdproj文件的"DeployProject"部分中的层次结构的顺序.
任何我们的其他.vdproj文件都不会发生这种情况.使.vdproj独一无二的一点是,除了包含解决方案中其他项目的主要输出外,它还包含50多个来自Visual Studio项目的附加.iso,.kml,.jpg文件.这些会导致PackageCode以某种方式改变吗?
我们有大约100多个Visual Studio C#/ .net解决方案,其中包含用于部署的Visual Studio安装程序项目(vdproj).这些是在Visual Studio 2010中构建的.
为了升级到Visual Studio 2012,我们需要将这些.vdproj项目迁移到Wix,因为vs2012不再支持这些项目类型.
这些项目大多是简单的项目,它将文件安装到给定的位置.我们在安装过程中使用自定义操作,使.config文件位置特定(用实际值替换标记).
将这些项目转换为Wix的最佳方法(每个项目的工作量最小)是什么?