我们目前有4个客户端软件安装程序:
它们之间的唯一区别是安装程序包含Crystal Reports可再发行文件,而Update不包含.测试和生产只是指定它们运行的环境,唯一的区别是Client.exe.config文件中有一行.
愚蠢,我知道,这就是为什么我在删除Crystal Reports后用一个安装程序替换它们的原因.新安装程序将所选环境写入setup.config,该文件由file属性引用(请参阅此处).
"file"属性是使用此新安装程序的配置文件的新属性.我遇到的问题是,如果我们修改旧安装上的Client.exe.config文件,然后运行新安装程序,配置文件永远不会使用"file"属性进行更新.
有没有办法强迫它更新文件?RemovePreviousVersions并不完全有效,因为它是一个不同的安装程序,除非我误解了一些东西.我当前的想法可能会起作用,就是在OnBeforeInstall方法中添加代码以将旧的Client.exe.config重命名为备份文件,因此它总是会编写新的.看起来安装程序本身应该有一个更简单的解决方案.有任何想法吗?
编辑:在调用base.OnBeforeInstall()之前将旧的配置文件重命名为Client.exe.config.old不起作用.它重命名了该文件,但从未编写过新文件.
目前,我使用安装项目中的注册表设置来为我的应用程序设置文件关联和相关文件的图标.
注册表设置http://i25.tinypic.com/11w7vrm.jpg
在通用VS安装项目中,始终对注册表进行更新.如何根据复选框对话框的状态对注册表进行更新?
registry installation setup-project visual-studio-2008 visual-studio
我有这个Visual Studio 2010安装项目来安装我的应用程序.在(干净)Windows 7 32位安装上,它在安装我的应用程序后启动Internet Explorer.
在我自己的机器上(Windows 7 64位),这不会发生.你知道这里有什么问题吗?我机器上的默认浏览器是chrome.在(干净的)32位机器上它是Internet Explorer 8 ...
更新: 我刚刚在测试计算机上安装了Safari并将其设置为默认浏览器.现在,安装程序无法打开浏览器窗口.当我将Internet Explorer恢复为默认浏览器时,卸载我的应用程序,重新安装它:Bam!浏览器窗口再次打开:(
固定:我是傻瓜.现在我不那么傻了.所有这一切都从R78到R79.
我按照本文中的说明为IIS 7创建了自定义重写提供程序:为URL重写模块开发自定义重写提供程序
为了简化部署,我创建了一个VS2010安装项目并将其配置为将我的程序集部署到GAC.

当我运行安装程序时,它成功完成,并且似乎在GAC中注册了程序集(我已使用gacutil.exe/l进行了验证).
但是,当我转到IIS管理器注册新的重写提供程序时,它不会显示在可用提供程序列表中.
我还尝试使用gacutil.exe/if手动安装程序集.这确实有效,并使组件在IIS管理器中的可用提供程序列表中可见.
我在安装项目中缺少某种配置吗?
我有几个项目的解决方案.这些项目中的一些(2)是安装项目.每当我打开解决方案时,我都会遇到如下错误:
错误16无法找到源文件'Z:...\Remotion.Data.Linq.dll',用于汇编'Remotion.Data.Linq.dll',位于'[TARGETDIR]'Z:...\CirrusNodeServiceSetup.vdproj CirrusNodeServiceSetup
通过执行构建或通过"触摸"(使用我的鼠标)安装项目中的依赖项文件夹,可以消除这些错误.
有没有办法让这种奇怪的行为停止?
我有一个使用第三方依赖DLL文件的安装程序.这些DLL有32位和64位.
是否可以创建一个项目,在为x86编译时采用32位版本,在为x64编译时采用64位版本?
现在我有2个MSI项目:一个用于32位,另一个用于64位......我不喜欢这个解决方案.
我有一个由3个项目组成的解决方案.我创建了一个部署项目,它只包含我解决方案中某个项目的依赖项.
到目前为止我所做的是在我的安装和部署项目中,我右键单击"应用程序文件夹"添加 - >项目输出.接下来,我从下拉列表中选择了我的主项目并选择了"主要输出".我单击了OK,该项目的依赖项已成功包含在部署中.
我尝试在我的解决方案中为其他DLL重复相同的过程,但它没有包含它们的依赖项.
如何为每个项目包含所有依赖项?
setup-project visual-studio-2010 setup-deployment visual-studio
我想针对ES5,所以我在我的Visual Studio项目文件中设置:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
但现在我得到error MSB6006: "tsc.exe" exited with code 1.ES3我没有得到错误.
我正在使用VS Community 2015,其中包含Setup Project扩展.我从未见过这个问题与2010一起工作.问题是当我将一个项目添加到输出时,Detected Dependencies列出了我在项目中使用的所有dll,包括内置的:
运行安装程序后,它继续安装一百个dll文件,包括应该是.NET Framework一部分的文件,如:
我确信:
我究竟做错了什么?如何让安装程序只安装不属于.NET Framework的dll(如Caliburn或NLog).谢谢.
编辑1:根据'Claudius'的问题,这里有一个据说安装在我的机器上的.NET框架列表.请注意,我正在尝试安装在我正在开发的同一台机器上.我的/ bin/Release文件夹没有任何.NET .System目录,应用程序从那里运行正常.

编辑2:发现另一个有类似问题的人.遗憾地未解决: Visual Studio安装项目:巨大的依赖项列表
我正在使用Visual Studio 2017,并且正在使用Microsoft的此扩展程序,以使Visual Studio 2017能够创建安装项目。
我创建了新的安装项目,并将WPF应用程序的主要输出添加到该安装项目。这里的一切都还可以。
问题是:Visual Studio 2017在“ 检测到的依赖关系”部分中添加了GAC程序集,并且还将它们添加到了“ 应用程序文件夹”中,并且还在重复添加了它们(每个程序集被添加了两次)。
这是一张图片
最后,当我使用MSI软件包安装应用程序时,GAC程序集将复制到包含该应用程序的文件夹中。
那么,为什么Visual Studio会这样,我在做什么错呢?
我试图排除GAC dll,但是VS对此进行了覆盖,因此
我想从“检测到的依赖项”中删除GAC dll,但是vs不允许我这样做
我不想将GAC程序集复制到“应用程序文件夹”,我想直接从GAC中使用它们。怎么做?
注意1:我正在使用TFS托管解决方案的源代码。
注2:所有项目均根据Release x64
注3进行构建:尽管装配体下有一条阅读线,但在构建Visual Studio时不会给我任何错误或警告。
setup-project ×10
c# ×3
gac ×2
.net-3.5 ×1
32bit-64bit ×1
iis-7 ×1
installation ×1
registry ×1
typescript ×1
windows ×1
wpf ×1