我需要将vdproj文件转换为WiX格式,以便我可以使用msbuild构建它.一个解决方案是从msbuild调用devenv可执行文件并从那里构建vdproj文件,但这只是讨厌.我以为我会尝试手动将文件转换为WiX格式,但查看其内容让我感到非常害怕.是否有任何工具或优雅的解决方案可能有助于此转换?
我正在尝试将我已经解决的问题转移到Visual Studio 2012,其中一个项目类型是.vdproj.
根据此链接,Visual Studio 2012不支持此项目类型:MSDN表示他们建议您使用InstallShield Limited Edition for Visual Studio.
问题是,当我在VS2012中打开我的解决方案并尝试在我的解决方案中添加一个新的"启用InstallShield Limited Edition"项目时,我收到一条错误消息:
创建项目'test'...项目创建失败.


为什么我可能无法在我的解决方案中添加此类型的项目?
如果我创建一个新的空解决方案,我无法在其中创建InstallShield项目.
我将尝试下载InstallShield限量版,看看它是否有任何作用.
我尝试了InstallShield下载,并添加了两个额外的项目类型,但我无法创建其中任何一个.我能够将正常的网站项目添加到我的解决方案中,但不是部署项目.
安装程序命名相同,但这个促使我重新启动.重新启动后,我能够添加一个InstallShield项目,但它是在自己的解决方案中创建的.所以,现在看起来我必须弄清楚如何使用它,我会很高兴.
看起来限量版没有安装Windows服务的支持.
windows-installer vdproj visual-studio-2012 installshield-le iswix
我在VS 2010中有一个安装部署项目.该项目与VS 2010的GUI界面完美编译,但是当我尝试通过vs cmd(devenv.com)编译它时,它会出现这个错误:
ERROR: Unable to update the dependencies of the project.
Run Code Online (Sandbox Code Playgroud)
请注意,错误中没有提到的dll(例如,错误不包含"无法确定对象'xxx'的依赖关系").
请不要告诉我清理此设置中的所有文件并从头开始 - 这不是一个真正的解决方案!我有5个项目有这个确切的错误,我不想重新安排每一个.更重要的是,这并不能保证我将来不会再出现这个问题.
非常感谢!
我一直在网上搜索过去几个小时,找到了很多与我的问题有关的信息 - 但没有一个真正修复它们.
我的机器是64位,安装了32位Visual Studio 10.解决方案使用.Net 4.解决方案包括64位Crystal Reports安装.解决方案还包括log4net.
在VS2010中编译项目对于Debug和Release,任何cpu都是可以的.
我添加了一个我想要构建的Web安装项目.但是,无论配置如何,编译时都会出现以下错误(在VS UI和命令行中使用devenv.exe):
ERROR: File 'CrystalDecisions.ReportAppServer.Prompting.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.Prompting.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.ObjectFactory.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.ObjectFactory.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.XmlSerialize.dll' targeting 'AMD64' is not compatible with the project's target platform …Run Code Online (Sandbox Code Playgroud) 我知道有些公司允许您根据需要在构建机器上安装他们的产品,而无需单独的许可证(DevExpress是我想到的).但是我想知道微软是否对许可证有相同的限制.
MSBuild不直接支持vdproj,并要求您从命令行运行Visual Studio以构建安装项目.看到这里
我需要通过自动构建生成一个安装文件; 我是否需要为构建计算机购买额外的许可证?
编辑:我已经与负责许可的管理员交谈,他很高兴我在构建机器上安装VS2008而无需购买额外的许可证,相信不需要许可证.如果我在这里有更多官方信息,我会再次更新.
编辑2:我听说微软将允许VS2008安装在构建机器上,只要开发人员没有使用该实例进行主动开发.
我确定MSDN上必须有一些文档,但我找不到它.它看起来像JSON的一些子集/变体.真的,这个问题源于一直困扰我的事情:所有的8:s和3:s是什么意思?这是某种版本号吗?也许打字方案?我见过的每个VDPROJ摘录都充满了这些"八冒号"和"三冒号"的前缀,但这并不是搜索引擎真正有用的问题.
"DeployProject"
{
"VSVersion" = "3:800"
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
"IsWebType" = "8:FALSE"
"ProjectName" = "8:ProjectNameRedacted"
"LanguageId" = "3:1033"
"CodePage" = "3:1252"
"UILanguageId" = "3:1033"
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_02F97BB7BD104F1AAA1C97C854D5DC99"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
...
Run Code Online (Sandbox Code Playgroud)
如果有人只想指责我可怜的Google-fu,那也没关系.
我尝试安装MSI时遇到了可怕的问题:
MSI (c) (98:B0) [18:01:22:818]: Invoking remote custom action. DLL: C:\DOCUME~1\sspencer\LOCALS~1\Temp\1\MSI19.tmp, Entrypoint: CheckFX
MSI (c) (98:FC) [18:01:22:833]: Cloaking enabled.
MSI (c) (98:FC) [18:01:22:833]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (98:FC) [18:01:22:833]: Connected to service for CA interface.
Action ended 18:01:22: DIRCA_CheckFX. Return value 3.
Run Code Online (Sandbox Code Playgroud)
经过相当多的挖掘,这实际上表明DLL无法直接加载,CA服务器无法连接并开始命中DLL入口点.
我使用orca和7zip为部署项目构建时由Visual Studio插入的DIRCA_CheckFX提取自定义操作.我抓住了DLL然后在主机系统(Server 2003 R2)中执行了Dependency Walker,它给出了错误:
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Run Code Online (Sandbox Code Playgroud)
我使用VS 2010编译器重新编译系统,解压缩DLL并在其上运行依赖walker,这不会产生相同的错误.即VS 2010编译工作,VS …
dll dependencies windows-installer vdproj visual-studio-2013
所以我有一个我想要运行的命令,如下所示:
for /r %n in ("*.vdproj") do "C:/Program Files/Microsoft
Visual Studio 10.0/Common7/IDE/devenv.exe" %n /build "BuildServer"
Run Code Online (Sandbox Code Playgroud)
它似乎工作在它在每个.vdproj文件上运行devenv; 然而,它似乎并行运行并立即返回.这是个问题; 我需要等到它们全部完成才能运行.bat文件中的下一步.我怎么能
1-在运行下一个devenv之前,先让每个devenv'等待'
要么
2-等到devenv.exe全部完成后再继续运行?
我想这里的大多数人都了解全自动构建的重要性.
问题是我们的项目之一现在正在使用集成的Visual Studio安装项目(vdproj),并且最近被移植到Visual Studio 2008.不幸的是,那些不会在MSBuild中构建并且在2008上调用devenv.exe/build只是崩溃,显然它在所有多核计算机上都做到了(!!!).所以现在我可以选择回滚到.Net 2.0和2005,或者只是放弃Visual Studio部署,但首先,我想要第二个意见.
任何人都知道另一种自动构建.vdproj的方法,它不需要我们打开IDE并点击东西?
当说我们放弃vdproj时,WiX就是我的想法.你有任何经验吗,好事,警告?
我见过关于VDPROJ文件生成的MSI文件的混乱行为.如果我在Visual Studio中构建我的MSI,然后右键单击并从Visual Studio中选择"安装",它将自动卸载已安装的任何版本,然后安装新的MSI.
但是,如果采用生成的MSI并直接运行它,如果已经安装了以前的版本,它将会抱怨.我必须先显式卸载它(在"添加/删除程序"中).
这是怎么回事?是否有Visual Studio执行MSI的命令行参数?
vdproj ×10
msbuild ×3
wix ×2
.net ×1
build ×1
c# ×1
command-line ×1
dependencies ×1
devenv ×1
dll ×1
installer ×1
iswix ×1
msbuild-task ×1