一 部署 C# 应用程序
部署是分发要安装到其他计算机上的已完成应用程序或组件的过程。对于控制台应用程序或基于 Windows 窗体的智能客户端应用程序,有两个部署选项可供选择:ClickOnce 和 Windows Installer。
ClickOnce 部署
ClickOnce(Visual Studio 2000和NET Framework 2.0 的一个功能) 部署允许您将 Windows 应用程序发布到 Web 服务器或网络文件共享,以简化安装。在大多数情况下,建议使用 ClickOnce 选项进行部署,因为该选项可使基于 Windows 的应用程序进行自更新,尽可能减少安装和运行时所需的用户交互。
Windows Installer
Windows Installer 部署允许您创建安装程序包以分发给用户;用户运行安装文件并按照向导逐步 *** 作即可安装应用程序。将安装项目添加到解决方案中即可完成此 *** 作;在生成后,它将创建一个分发给用户的安装文件;用户运行此安装文件并按照向导逐步 *** 作即可安装应用程序。
二 VS2005中的clickonce技术
1) 在设计完winform程序后,可以选择将程序发布到如下的存贮位置:文件系统,本地的Web服务器,FTP站点,远程Web站点。
2) 当应用程序部署到相应的位置后,用户可以通过浏览器浏览一个叫publish.htm的文件,点击下载的链接,将应用程序下载到本机安装。这个publish.htm是部署应用程序的一个入口文件.
3) 当用户安装完程序后,会自动产生快捷方式到桌面,并且在控制面版的增加删除中会找到该程序。
4) 当用户启动程序时,系统可以首先去检查服务端是否有新的程序版本,如果有的话,则会自动连接服务端,查看是否有新的版本,如果有新的版本的话,则自动下载新的版本到本机并安装
程序部署的实例
首先,打开vs2005用C#建立一个windows应用程序。之后拖放一个按钮到窗体中,在该按钮的click事件中写入如下代码:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("hello world")
Close()
}
运行上面的程序,如下图所示
接下来,可以对其进行发布了。首先看下在VS2005中,其中的发布选项卡。鼠标右击这个程序的工程,选其中的"properties"属性菜单,如下图所示
上图是项目的属性页,其中有许多选项。在最上面的"publish location"选项框中,允许你指定将项目发布的位置。可以点旁边的"…"按钮,进一步浏览确定发布的位置,如下图
这里,我们可以设定项目要发布的位置,比如文件系统,本地服务器,FTP站点,远程站点等。
接着,我们在"install mode and setting"选项组中,可以点选"Prerequisites..."按钮,这里可以设置要运行该应用程序时,需要额外安装的库文件或其他必须的文件,如下图所示。默认必须安装的是.net framework 2.0。还要选中windows installer 3.1
同时,我们可以选择"install mode and setting"选项卡中的update选项,这个选项卡如下图所示
其中,默认是采用启动应用程序时检查更新的选项的。也可以选择,是在应用程序连接上网时自动检查是否有更新的版本,或者是选择当应用程序启动后,以后台进程的方式,自动检查是否有新的版本。
选择"installl mode and setting"选项卡中的"options"选项卡,如下图,填入一些关于应用程序的信息。
已经设置完毕,可以开始进行部署了。我们使用其中的"publish wizard"发布向导进行发布。首先选定要发布的位置,如下图所示:
点"NEXT"后,出现如下图,这里,可以选择你的应用是在离线或是可以同时运行在离线和在线状态下的.
publish 成功,系统自动打开IE浏览器,转到publish的页面,如图:
这样当用户启动程序时,系统可以首先去检查服务端是否有新的程序版本,如果有的话,则会自动连接服务端,查看是否有新的版本,如果有新的版本的话,则自动下载新的版本到本机并安装.
可进一步在局域网中其他机子上测试(http://xue/test/publish.htm).
VS2005客户端使用clickonce部署应用程序
使用发布向导
1 选择Build | Publish TEST 菜单命令.
2 这将运行发布向导.。这将提供最直接的方法发布一个应用程序。
3 在发布向导中,将配置程序要发行的地址,默认为"http://localhost/TEST".
4 默认情况下发布的位子与主程序的名字有关,.而且是以网站形式发布。 其他发布方式还有 FTP 站点, 本地, 网络共享.
5选择Next.
6在 Will the application be available offline? 页面, 有两种安装模式供选择。默认方式下序在online和offline都能使用
7其他选项, “No, this application is only available online”则是程序会直接从发布页运行,而且将不会集成到Windows shell中。
8 选择 “Yes, this application is available online or offline.”然后单击 Next.
9单击 Finish.
10发布引擎将创建必须的发布文件 ,包括:程序的二进制文件,程序清单, 一个HTML 页面并将他们存在一个本地的项目文件夹中。当第一次发布到网站, 发布引擎会在目标服务器上建一个Web 应用程序,然后从项目文件夹复制文件到虚拟目录.。当发行完成,最新的publish.htm 页面将在 Internet Explorer中自动运行。
运行一个 ClickOnce 程序
1在Internet Explorer中打开TEST的页面, 单击 Install 按钮.。这将运行该应用程序。一个程序运行对话框将通知用户程序来自一个未知的软件发布者。( 数字签名)
2在Application Install 对话框中,单击 Install.
3 ClickOnce客户端在本机执行程序,完成后会运行最新的程序。.
4 Running version和 Updated version 显示了发布的详细版本信息.
5关闭程序。
6通过Start | All Programs | shuttle | TEST方式启动.这是程序在offline的情况下运行。
配置ClickOnce的设置
1在 Visual Studio中的TEST 项目中双击他属性文件夹。.
2这将打开Project Designer.
3在Project Designer单击Publish 标签
4在Publish 面板, 再次查看所有可用的发布选项。
5所有在向导中设置的属性在这都是可修改的。
6不勾选 “Open deployment web page after publishing.” 这个属性控制每次从VS 2005发布一个ClickOnce应用程序时是否自动打开一个publish.htm 页面 。
7单击 OK.
8在应用程序配置对话框中允许配置程序的各种不同更新方式。 这包括程序是在运行前检查更新, 或是运行中检查。 还能配置检查更新的频率(比如每星期更新一次) 以及是否强制更新
9点击 OK.
10在Prerequisites对话框,注意选择.NET Framework 2.0 组件。 默认情况下,发布引擎会创建一个安装项目并包含该组件。还可以选择其他可再发行包,是它们与自己的程序一起发布。..
发布和更新程序
1在Publish中,这有个按钮Publish Now用于终止向导直接发布.
2单击 Publish Now.
3通过 Start | All Programs | shuttle | test打开程序.
4当启动程序, 一个状态对话框出现, 这个是由ClickOnce客户端提供服务的(dfsvc.exe, 一个在任务管理器中能找到的进程). 这个程序将通过读取本地配置文件决定是否应该进行更新,然后通过下载网络上的文件查看是否有可用的新版本。
应用程序的回滚
1通过 to Start | Control Panel | Add or Remove Programs.
2在 Add or Remove Programs中选择TEST.
3单击 Change or Remove.
4选择 Restore the application to its previous state.
5通过Start | All Programs | shuttle | TEST.
这时的版本将回到它的前一版
卸载
1打开Start | Control Panel | Add or Remove Programs.
2在Add or Remove Programs中选择Northwind Traders TEST.
3单击 Click here for support information.
. 4单击 Close.
5单击 Change or Remove.
6选择 Remove the application from this computer 然后单击OK.
最后是对publish的一些选项做下解释说明
Publishing Location是输入程序要发布的地址,可以是网络文件夹,HTTP,FTP等等
Prerequisites是选择程序安装必需的先决条件。比如:freamework2.0,SQL2005,install3.1.....
Updates是对程序检查更新的设置。是程序启动就检查更新,还是程序运行后检查,还是每个星期检查一次,可以设定天数等等
Options就是一般是设置
其实最详细的介绍在MSDN中关于“安装和部署”项目内。
如果有疑问可以在百度上给我留言
设置64位创建环境变量, 用下面任何一种方式都行:方式一:
点击”开始”菜单, 指向 “Microsoft Platform SDK” >“Open Build Environment Windows” >“Set Windows XP 64 Build Environment”, 然后点击”Set Windows XP 64 Build Environment (Debug)”, 这时, 一个控制台窗口将显示, 一行文本显示像” the build environment set for a 64-bit”.
方式二:
在命令提示符下,
1. 点击”开始”菜单, 然后点击”运行”
2. 键入”command.exe”(没有引号), 然后, 点击”确定”
3. 变化当前目录到C:\Program Files\Microsoft SDK(你的SDK安装目录), 然后键入”SetEnv.bat /XP64”(没有引号)
现在, 开始启动Visual C++ 6.0并用我们刚才配置好的创建环境
1. 在同一个命令窗口中(也就是你刚才设置64位环境的命令行窗口), 打开Visual Studio.
2. 键入 “Msdev /useenv”(没有引号). 请注意, 不要打开一个新的命令行窗口, 再去打开Msdev.exe, 现在Visual C++ 6.0 IDE已经显示, 并且include, library及executable目录均被设置为64位的创建环境(注:查看这些配置, 点击Tools >Options >Directories, 在”Show directories for: “下拉列表中查看相应目录配置).
另外, 如果Msdev.exe不在当前路径下(通常是系统环境变量没有相应指示), 变化目录到你所安装Visual Studio的目录下, 例如: \Microsoft Visual Studio\Common\Msdev98\Bin, 然后, 再键入Msdev.exe.
译注: 在前面的设置64位创建环境变量 , 已经将IDE的executable执行目录调整到SDK的相应目录下面, 也就是说, 作为可执行程序: 编译器和链接器是在SDK目录中, 而不再是默认的\Microsoft Visual Studio\Common\Msdev98\Bin
添加一个64位Debug配置
1. 在Visual C++ IDE中, 打开一个已经在的32位工程(例如: MyApplication)
2. 在”Build”菜单上, 点击”Configurations”.
3. 在”Configurations”对话框上, 点击”Add”.
4. 在”Add Project Configuration”对话框上, 设置”Configuration”到Debug64, 然后, 在”Copy Settings from”列表框中点击”MyApplication – Win32 Debug”
5. 点击”OK”完成设置, 点击”Close”关闭.
设置激活配置为64位
1. 在”Build”菜单上, 点击”Set Active Configuration”.
2. 点击”MyApplication – Win32 Debug64”, 然后, 点击”OK”.
修改编译器和链接器的参数配置
由于64位的编译器和链接器的参数配置和32位的有些不一样, 我们需要修改部分选项, 下面是这些配置步骤:
1. 在”Project”菜单中,点击”Settings”.
2. 在”Project Settings”对话框中, 点击”General”标签. 在”Output directories”, 在”Intermediate files” 和”Output files”输入框中, 键入”Debug64”(没有引号)
3. 在”C/C++”标签上, 在”Debug info”下拉列表中, 选择”Program database(参数选项对应是 /Zi)
4. 在”Link”标签上, 在”Project options”的输入框中, 变化”/machine:I386”(没有引号)到”/machine:IA64”(没有引号)
译注: 正确设置应是: /machine:AMD64
5. 在”View”菜单上, 点击”Workspace”.
6. 然后, 移除帮助文件MyApplication.hpj
7. 如果你的应用程序是基于MFC的, 你必须添加一个MFC路径以避免链接错误:LNK1004 on the Mfc42d.lib, 请按下面步骤 *** 作:
a. 在”Tools”菜单上, 点击”Options”.
b. 在”Directories”标签上, 在”Show directories”下拉列表中, 选择”Library Files”, 现在添加你的平台库所在路径: ”\Microsoft SDK\lib\IA64\mfc”(没有引号)
译注补充: 在”C/C++”标签上, 在”Preprocessor definitions”输入框中将WIN32改成WIN64
创建并调试这个工程
现在Build这个工程, 生成64位应用程序, 这个应用程序被部署在一个IA64计算机上.
要在Visual C++ 6.0中运行这个.exe文件, 按下面步骤:
注意: 你不能够在Visual C++ 6.0 IDE中调试这个.exe文件.
a. 在你的IA64计算机上, 创建一个文件夹: C:\VC6MSVCMON
从X86(32位)计算机上拷贝这些文件到这个新创建的文件夹中:
Msvcmon.exe
Dm.dll
Msdis110.dll
Tln0t.dll
上面这些文件应在你的Visual C++ 6.0安装目录下:
\Visual Studio\Common\MSDev98\Bin
b. 在拷贝完这些文件后, 在IA64计算机上运行Msvcmon.exe, 然后, 点击”Connect”.
c. 在X86(32位)计算机上, 打开Visual C++ 6.0 IDE, 在”Build”菜单上, 点击”Debugger Remote Connection”.
d. 在”Remote Connection”对话框中, 点击”Network TCP/IP”, 然后, 点击”Settings”.
e. 在”Target computer name of address”输入框中, 键入IA64计算机的名称. 点击”ok”两次, 关闭对话框.
f. 在Visual Studio C++ IDE中, 在”Project”菜单上, 点击”Settings”, 在左侧面板, 展开”MyApplication”, 然后, 点击”Debug”标签. 你将注意到”Executable for debug session”输入框包含了MyApplication.exe的路径, 看起来是C:\<X86Path>\MyApplication.exe.
g. 在”Remote executable path and file name”输入框中, 键入”MyApplication.exe”(没有双引号)所在的全路径, 这个路径看起来像: \\<X86ComputerName>\C$\<x86Path>\MyApplication.exe(没有引号).点击”OK”关闭该窗口.
h. 按下CTRL+F5或在”Build”菜单上点击”Execute MyApplication.exe”, 开始运行这个.exe文件, 这个.exe文件现在是运行在IA64计算机上.
注意:如果MyApplication是一个MFC应用程序并且这个工程用到了MFC相关的.dll文件, 请确信在IA64计算机上, 那些.dll文件从\Microsoft SDK\NoRedist\Win64文件夹中已被拷贝到\System32文件夹中.
译注:\Microsoft SDK\NoRedist\Win64存放的是debug和release版本的MFC, ATL相关dll(64位), 实际上你也可以拷贝这些dll文件到你的可执行.exe文件所在同一目录中.
这些dll文件是:
Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll
译注补充: 编译/链接中经常遇到的问题:
链接出错, 通常是RTC, cookie错误, 参见下面链接设置:
http://support.microsoft.com/?scid=kb%3Ben-us%3B894573&x=15&y=14
链接中如出现 Error Spawing bscmake.exe
去掉勾选编译参数(Project settings >c/c++): Generate Browse Info
如果仍不成功, 请仔细检查在菜单项”Tools” >“Options” , 定位在”Directories”标签, 选择”Executable Files”, 在下面的目录列表中, 将<SDK安装目录>\bin路径放在第一项.(这个目录中的64位编译器和链接器程序将重载旧的32位设置).
如果你是动态库和主应用程序链接, 必须保持用的是相同运行时库, 例如: 全部都是Multi-Threads DLL(点击”Project” >“Settings”, 选择”C/C++”标签, 在”Category”下拉列表中选择”Code Generation”, 在下面”Use runtime library”下拉列表中选择).
用Visual C++ .NET IDE创建一个64位应用程序
警告: 在已安装Visual Studio .NET的计算机上, 请不要同时安装64位版本的WinDbg调试器工具, 请读平台SDK的Readme.doc(位置在: C:\Program Files\Microsoft SDK\Bin\Win64\Readme.doc).
设置64位创建环境变量, 用下面任何一种方式都行:
参照前文相同部分.
开始启动Visual C++ .NET, 并用刚才我们创建好的64位环境
1. 在64位SDK环境设置的命令行窗口中,打开Visual Studio .NET.
2. 键入”devenv /useenv”(没有引号), 然后, 点击”OK”. 现在include, library, executable目录被设置成为64位SDK所在目录.
注意: 如果Devent.exe不在当前路径(通常是在系统环境变量Path中未指定Visual Studio .NET安装目录), 请改变文件夹路径到<Visual Studio .NET安装目录>\Microsoft Visual Studio .NET\Common7\IDE, 然后再运行上述命令.
警告:在你运行这个命令后, Visual Studio .NET IDE就被设置成为64位的开发环境, 如果你想清除这个环境, 在打开一个新的Visual Studio .NET IDE之前, 删除在C:\Documents and Settings\<Username>\Local Settings\Application Data\Microsoft\VisualStudio\7.0 下的Vccomponents.dat文件.
添加一个64位调试配置
1. 打开一个已存在的32位工程(例如, MyApplication).
2. 在”Build”菜单上, 点击”Configuration Manager”.
3. 在”Active Solution Configurations”列表中, 点击”New”.
4. 在”New Solution Configurations”对话框中, 在”Solution Configuration Name”下面选择”Debug64”(不包含引号), 并且在”Copy Settings From”下面选择”Debug”.
5. 点击”OK”.
6. 在”Configuration Manager”对话框中, 在”Active Solution Configuration”列表中, 点击选择”Debug64”, 然后点击”OK”.
修改编译器和链接器设置
由于64位的编译器和链接器的参数配置和32位的有些不一样, 我们需要修改部分选项, 下面是这些配置步骤:
1. 在”Solution”(中文:解决方案)浏览窗口中, 右键”Project”, 然后, 点击”Properties”.
2. 在”C/C++”节点, 选择”General”. 设置”Debug Information Format”到”Program Database”(对应的编译选项是/Zi).
3. 在”C/C++”节点中, 选择”Code generation”. 设置”Buffer Security Check”到”No”(对应的编译选项是/GS).
4. 在”Linker”节点, 选择”Command Line”.在”Additional Options”下面, 添加”/MACHINE:IA64”(没有引号).
5. 如果你的应用程序是基于MFC的,你必须添加MFC路径以避免收到链接错误:LNK1104 on the Mfc42d.lib file.
添加MFC路径, 按下面步骤:
a. 在”Tools”菜单上, 点击”Options”.
b. 在”Projects”下面, 选择”VC++ Directories”. 在”Show directories”列表中, 选择”Library Files”.如果库路径没有列出, 添加这个库路径"\Microsoft SDK\lib\IA64\mfc"(没有引号).
注意:如果MyApplication是一个MFC应用程序并且这个工程用到了MFC相关的.dll文件, 请确信在IA64计算机上, 那些.dll文件从\Microsoft SDK\NoRedist\Win64文件夹中已被拷贝到\System32文件夹中.
这些dll文件是:
Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll
完成这些后, 就可以build 64位可执行程序了.
调试工程参照Visual C++ 6.0 IDE部分.
更多参考在:
64-Bit Programming with Visual C++
64位程序移植问题设置64位创建环境变量, 用下面任何一种方式都行:
方式一:
点击”开始”菜单, 指向 “Microsoft Platform SDK” >“Open Build Environment Windows” >“Set Windows XP 64 Build Environment”, 然后点击”Set Windows XP 64 Build Environment (Debug)”, 这时, 一个控制台窗口将显示, 一行文本显示像” the build environment set for a 64-bit”.
方式二:
在命令提示符下,
1. 点击”开始”菜单, 然后点击”运行”
2. 键入”command.exe”(没有引号), 然后, 点击”确定”
3. 变化当前目录到C:\Program Files\Microsoft SDK(你的SDK安装目录), 然后键入”SetEnv.bat /XP64”(没有引号)
现在, 开始启动Visual C++ 6.0并用我们刚才配置好的创建环境
1. 在同一个命令窗口中(也就是你刚才设置64位环境的命令行窗口), 打开Visual Studio.
2. 键入 “Msdev /useenv”(没有引号). 请注意, 不要打开一个新的命令行窗口, 再去打开Msdev.exe, 现在Visual C++ 6.0 IDE已经显示, 并且include, library及executable目录均被设置为64位的创建环境(注:查看这些配置, 点击Tools >Options >Directories, 在”Show directories for: “下拉列表中查看相应目录配置).
另外, 如果Msdev.exe不在当前路径下(通常是系统环境变量没有相应指示), 变化目录到你所安装Visual Studio的目录下, 例如: \Microsoft Visual Studio\Common\Msdev98\Bin, 然后, 再键入Msdev.exe.
译注: 在前面的设置64位创建环境变量 , 已经将IDE的executable执行目录调整到SDK的相应目录下面, 也就是说, 作为可执行程序: 编译器和链接器是在SDK目录中, 而不再是默认的\Microsoft Visual Studio\Common\Msdev98\Bin
添加一个64位Debug配置
1. 在Visual C++ IDE中, 打开一个已经在的32位工程(例如: MyApplication)
2. 在”Build”菜单上, 点击”Configurations”.
3. 在”Configurations”对话框上, 点击”Add”.
4. 在”Add Project Configuration”对话框上, 设置”Configuration”到Debug64, 然后, 在”Copy Settings from”列表框中点击”MyApplication – Win32 Debug”
5. 点击”OK”完成设置, 点击”Close”关闭.
设置激活配置为64位
1. 在”Build”菜单上, 点击”Set Active Configuration”.
2. 点击”MyApplication – Win32 Debug64”, 然后, 点击”OK”.
修改编译器和链接器的参数配置
由于64位的编译器和链接器的参数配置和32位的有些不一样, 我们需要修改部分选项, 下面是这些配置步骤:
1. 在”Project”菜单中,点击”Settings”.
2. 在”Project Settings”对话框中, 点击”General”标签. 在”Output directories”, 在”Intermediate files” 和”Output files”输入框中, 键入”Debug64”(没有引号)
3. 在”C/C++”标签上, 在”Debug info”下拉列表中, 选择”Program database(参数选项对应是 /Zi)
4. 在”Link”标签上, 在”Project options”的输入框中, 变化”/machine:I386”(没有引号)到”/machine:IA64”(没有引号)
译注: 正确设置应是: /machine:AMD64
5. 在”View”菜单上, 点击”Workspace”.
6. 然后, 移除帮助文件MyApplication.hpj
7. 如果你的应用程序是基于MFC的, 你必须添加一个MFC路径以避免链接错误:LNK1004 on the Mfc42d.lib, 请按下面步骤 *** 作:
a. 在”Tools”菜单上, 点击”Options”.
b. 在”Directories”标签上, 在”Show directories”下拉列表中, 选择”Library Files”, 现在添加你的平台库所在路径: ”\Microsoft SDK\lib\IA64\mfc”(没有引号)
译注补充: 在”C/C++”标签上, 在”Preprocessor definitions”输入框中将WIN32改成WIN64
创建并调试这个工程
现在Build这个工程, 生成64位应用程序, 这个应用程序被部署在一个IA64计算机上.
要在Visual C++ 6.0中运行这个.exe文件, 按下面步骤:
注意: 你不能够在Visual C++ 6.0 IDE中调试这个.exe文件.
a. 在你的IA64计算机上, 创建一个文件夹: C:\VC6MSVCMON
从X86(32位)计算机上拷贝这些文件到这个新创建的文件夹中:
Msvcmon.exe
Dm.dll
Msdis110.dll
Tln0t.dll
上面这些文件应在你的Visual C++ 6.0安装目录下:
\Visual Studio\Common\MSDev98\Bin
b. 在拷贝完这些文件后, 在IA64计算机上运行Msvcmon.exe, 然后, 点击”Connect”.
c. 在X86(32位)计算机上, 打开Visual C++ 6.0 IDE, 在”Build”菜单上, 点击”Debugger Remote Connection”.
d. 在”Remote Connection”对话框中, 点击”Network TCP/IP”, 然后, 点击”Settings”.
e. 在”Target computer name of address”输入框中, 键入IA64计算机的名称. 点击”ok”两次, 关闭对话框.
f. 在Visual Studio C++ IDE中, 在”Project”菜单上, 点击”Settings”, 在左侧面板, 展开”MyApplication”, 然后, 点击”Debug”标签. 你将注意到”Executable for debug session”输入框包含了MyApplication.exe的路径, 看起来是C:\<X86Path>\MyApplication.exe.
g. 在”Remote executable path and file name”输入框中, 键入”MyApplication.exe”(没有双引号)所在的全路径, 这个路径看起来像: \\<X86ComputerName>\C$\<x86Path>\MyApplication.exe(没有引号).点击”OK”关闭该窗口.
h. 按下CTRL+F5或在”Build”菜单上点击”Execute MyApplication.exe”, 开始运行这个.exe文件, 这个.exe文件现在是运行在IA64计算机上.
注意:如果MyApplication是一个MFC应用程序并且这个工程用到了MFC相关的.dll文件, 请确信在IA64计算机上, 那些.dll文件从\Microsoft SDK\NoRedist\Win64文件夹中已被拷贝到\System32文件夹中.
译注:\Microsoft SDK\NoRedist\Win64存放的是debug和release版本的MFC, ATL相关dll(64位), 实际上你也可以拷贝这些dll文件到你的可执行.exe文件所在同一目录中.
这些dll文件是:
Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll
译注补充: 编译/链接中经常遇到的问题:
链接出错, 通常是RTC, cookie错误, 参见下面链接设置:
http://support.microsoft.com/?scid=kb%3Ben-us%3B894573&x=15&y=14
链接中如出现 Error Spawing bscmake.exe
去掉勾选编译参数(Project settings >c/c++): Generate Browse Info
如果仍不成功, 请仔细检查在菜单项”Tools” >“Options” , 定位在”Directories”标签, 选择”Executable Files”, 在下面的目录列表中, 将<SDK安装目录>\bin路径放在第一项.(这个目录中的64位编译器和链接器程序将重载旧的32位设置).
如果你是动态库和主应用程序链接, 必须保持用的是相同运行时库, 例如: 全部都是Multi-Threads DLL(点击”Project” >“Settings”, 选择”C/C++”标签, 在”Category”下拉列表中选择”Code Generation”, 在下面”Use runtime library”下拉列表中选择).
用Visual C++ .NET IDE创建一个64位应用程序
警告: 在已安装Visual Studio .NET的计算机上, 请不要同时安装64位版本的WinDbg调试器工具, 请读平台SDK的Readme.doc(位置在: C:\Program Files\Microsoft SDK\Bin\Win64\Readme.doc).
设置64位创建环境变量, 用下面任何一种方式都行:
参照前文相同部分.
开始启动Visual C++ .NET, 并用刚才我们创建好的64位环境
1. 在64位SDK环境设置的命令行窗口中,打开Visual Studio .NET.
2. 键入”devenv /useenv”(没有引号), 然后, 点击”OK”. 现在include, library, executable目录被设置成为64位SDK所在目录.
注意: 如果Devent.exe不在当前路径(通常是在系统环境变量Path中未指定Visual Studio .NET安装目录), 请改变文件夹路径到<Visual Studio .NET安装目录>\Microsoft Visual Studio .NET\Common7\IDE, 然后再运行上述命令.
警告:在你运行这个命令后, Visual Studio .NET IDE就被设置成为64位的开发环境, 如果你想清除这个环境, 在打开一个新的Visual Studio .NET IDE之前, 删除在C:\Documents and Settings\<Username>\Local Settings\Application Data\Microsoft\VisualStudio\7.0 下的Vccomponents.dat文件.
添加一个64位调试配置
1. 打开一个已存在的32位工程(例如, MyApplication).
2. 在”Build”菜单上, 点击”Configuration Manager”.
3. 在”Active Solution Configurations”列表中, 点击”New”.
4. 在”New Solution Configurations”对话框中, 在”Solution Configuration Name”下面选择”Debug64”(不包含引号), 并且在”Copy Settings From”下面选择”Debug”.
5. 点击”OK”.
6. 在”Configuration Manager”对话框中, 在”Active Solution Configuration”列表中, 点击选择”Debug64”, 然后点击”OK”.
修改编译器和链接器设置
由于64位的编译器和链接器的参数配置和32位的有些不一样, 我们需要修改部分选项, 下面是这些配置步骤:
1. 在”Solution”(中文:解决方案)浏览窗口中, 右键”Project”, 然后, 点击”Properties”.
2. 在”C/C++”节点, 选择”General”. 设置”Debug Information Format”到”Program Database”(对应的编译选项是/Zi).
3. 在”C/C++”节点中, 选择”Code generation”. 设置”Buffer Security Check”到”No”(对应的编译选项是/GS).
4. 在”Linker”节点, 选择”Command Line”.在”Additional Options”下面, 添加”/MACHINE:IA64”(没有引号).
5. 如果你的应用程序是基于MFC的,你必须添加MFC路径以避免收到链接错误:LNK1104 on the Mfc42d.lib file.
添加MFC路径, 按下面步骤:
a. 在”Tools”菜单上, 点击”Options”.
b. 在”Projects”下面, 选择”VC++ Directories”. 在”Show directories”列表中, 选择”Library Files”.如果库路径没有列出, 添加这个库路径"\Microsoft SDK\lib\IA64\mfc"(没有引号).
注意:如果MyApplication是一个MFC应用程序并且这个工程用到了MFC相关的.dll文件, 请确信在IA64计算机上, 那些.dll文件从\Microsoft SDK\NoRedist\Win64文件夹中已被拷贝到\System32文件夹中.
这些dll文件是:
Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll
完成这些后, 就可以build 64位可执行程序了.
调试工程参照Visual C++ 6.0 IDE部分.
更多参考在:
64-Bit Programming with Visual C++
64位程序移植问题
在“应用程序设计器”中管理应用程序设置,使用带选项卡的选项卡式界面设置常规、扩展、屏幕导航、访问控制和应用程序类型属性。本主题介绍“常规属性”选项卡中的设置。“扩展”选项卡的设置包含在主题如何添加或移除扩展中。“屏幕导航”选项卡的设置包含在主题如何创建菜单项和导航组中。“访问控制”选项卡的设置包含在主题如何创建基于角色的应用程序中。“应用程序类型”选项卡的设置包含在主题如何更改部署拓扑和应用程序类型中。“常规属性”选项卡中可用的设置如下:设置说明应用程序名称指定应用程序的标题栏和 Windows“开始”菜单中将显示的名称。默认值是项目名称 。徽标图像指定在某些应用程序 shell 中显示的可选图像。徽标图像通常用于显示公司徽标。“徽标图像” 可以.png 图像,也可以是 .jpg 图像。shell指定定义应用程序的布局的应用程序 shell。默认值是“LightSwitch 标准 Shell”。可以添加额外的 shell 作为扩展。有关更多信息,请参见扩展:向 LightSwitch 添加新功能主题指定定义应用程序所有元素的可视外观的应用程序主题。默认值是 LightSwitch Blue 主题。可以添加额外的主题作为扩展。有关更多信息,请参见扩展:向 LightSwitch 添加新功能应用程序图标指定的 Windows“开始”菜单和任务栏中将显示的图标。如果未指定,则将显示默认图标。“应用程序图标”属性需要 32X32 像素的可移植网络图形 (.png) 文件,您可以使用“绘制”或其他图形程序创建该文件。该图标仅对已部署的应用程序可见。应用程序版本指定该应用程序的主版本号和次版本号。默认值为 1.0。最大版本号为 65334.9999。区域性为使用应用程序部署的 LightSwitch 运行时文件指定本地化区域。默认值是在开发计算机的区域。更改应用程序显示名称在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”中,单击“常规属性”选项卡。在“应用程序”字段中,键您想要为新应用程序显示的名称。更改shell在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”单击“常规”选项卡。展开“Shell”下拉列表。可用shell 的列表(如果有)将出现在列表中。单击您想要应用的 shell。更改主题在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”中,单击“常规属性”选项卡。展开“主题”下拉列表。可用主题的列表(如果有)将出现在列表中。单击您想要应用的主题。添加应用程序图标在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”中,单击“常规属性”选项卡。单击“应用程序图标”字段右侧的“选择”按钮。将出现“选择图像”对话框。在“选择图像”对话框中,单击“导入”。在“打开”对话框中,查找包含 .png 图标文件的目录,然后选择该图标并单击“打开”。单击“确定”关闭“选择图像”对话框。图标文件的名称将显示在“应用程序图标”字段中。更改应用程序版本在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”中,单击“常规属性”选项卡。在“应用程序版本”字段中,在第一个文本框中键入主要版本号,然后在第二个文本框中键入次要版本号。该值必须是介于 0 和 65534 之间的一个数字。更改区域在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”中,单击“常规属性”选项卡。展开“区域”下拉列表。可用的区域列表会出现在列表中。单击要使用的区域。添加徽标图像注意虽然徽标图像可以添加到任何项目,但它只会显示在使用支持徽标图像的自定义应用程序 shell 扩展的项目中。默认LightSwitch 应用程序 shell 不支持显示徽标图像。在“解决方案资源管理器”中,双击“属性”打开“应用程序”设计器。在“应用程序设计器”中,单击“常规属性”选项卡。单击“徽标图像”字段右侧的“选择”按钮。在“选择图像”对话框中,单击“导入”。在“打开” 对话框中,查找包含 .png 或 .jpg 徽标的目录,然后选择文件并单击 “打开”。单击“确定”关闭“选择图像”对话框。图像文件的名称将显示在“徽标图像”字段中。请参见其他资源如何添加或移除扩展如何创建菜单项和导航组如何创建基于角色的应用程序如何更改部署拓扑和应用程序类型欢迎分享,转载请注明来源:内存溢出
评论列表(0条)