我已经用Visual Studio创建了安装项目。我还需要一些自定义操作 - 使用Visual C++创建DLL,它工作得很好,但我不想将Visual C++运行时文件包含到我的项目中。 那么是否有可能与其他一些C++编译器一起构建这个dll?执行自定义操作DLL-S的MSI安装程序必须与仅Visual Studio创建?
我曾试图弥补与开发 - C + +,但让它在编译时,我得到几百编译错误从文件中msi.h和msiquery.h
我已经用Visual Studio创建了安装项目。我还需要一些自定义操作 - 使用Visual C++创建DLL,它工作得很好,但我不想将Visual C++运行时文件包含到我的项目中。 那么是否有可能与其他一些C++编译器一起构建这个dll?执行自定义操作DLL-S的MSI安装程序必须与仅Visual Studio创建?
我曾试图弥补与开发 - C + +,但让它在编译时,我得到几百编译错误从文件中msi.h和msiquery.h
也许最简单的解决办法是你的DLL针对静态运行时链接库。
一般的自定义操作的DLL应该只依赖于已经在安装前的系统DLL。这意味着,例如,静态链接CRT,如MSalters所述,但也适用于对第三方库的任何其他依赖。
另一种选择是与OS CRT相连,如Koby Kahane解释here。
我做了一个自定义的DLL我的设置项目。我的dll很简单,注册很少的服务,而不是CLR或任何第三方库依赖。仅与msi.lib静态链接。
我已删除从安装项目的.NET和Windows安装程序的先决条件要求。我的安装程序在没有.net框架的macines上失败..?
正如我已经没有任何.NET相关的代码,什么应该是解决这个。我不希望用户首先下载安装框架。
问候 阿米特
在这里你可以使用C++的DLL自定义操作找到一些简单的例子:
http://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/
谢谢,这解决了我的问题。 – Keios 2009-06-05 08:49:09