在开发.NET项目的时候,包括Winform项目和Web方面的项目,编译和部署的时候,都需要考虑到是32位的X86方式,还是64位的方式,有时候还需要进行调试,如果没有合理设置好这些关系,还可能出现无法调试的问题,本文基于我对Winform的开发总结,介绍在.NET项目中对项目工程的设置操作。

1、设置编译平台的属性

一般情况下,我们为了同时兼容32位和64位操作系统,我们需要对设置好.NET项目的编译属性,一般设置为X86的方式。在VS的IDE里面,选择生成-》配置管理器菜单。

如我的混合框架的项目设置如下所示,统一设置为了X86的兼容模式,请确保所有的项目均为X86的平台设置。

2、WCF服务或者Web项目的设置

项目设置了以上的编译平台属性后,一般情况下,WinForm程序或者类库运行是没什么问题了,但是如果是项目里面有WCF服务或者Web项目的,还需要注意一个设置,就是bin目录的设置。默认如果你修改了X86的平台设置属性后,WCF服务或者Web项目的输出目录也会发生变化,一般情况下,会是bin\x86\Debug\

这个时候这个项目也是能够顺利编译的,一切似乎都显得正常的,但是我们在修改部分代码,并进行调试问题的时候,可能会出现源代码和原始版本不同的情况。

如果这时候,你根据这些去百度或者Google问题,可能会给你找出很多不同的解决方案,但是可能都不太解决问题,其实这个时候的问题处理很简单,就是把输出目录重新设置为Bin就可以了,编译调试源码也一致了。

3、Winform启动项目的目标框架问题

在创建Winform启动项目的时候,默认VS创建的Winform启动项目,它的目标框架总是Client Profile(不知基于什么考虑),而一般情况,我们使用外部类库比较少的时候,或者调用的.NET自身的类库比少的情况下,问题不会出现,但是我们用这个项目开发了一段时间,逐渐加入一些模块的时候,发现总是出现错误,或者会缺少某些命名空间,这个时候,我们就应该要检查一下是否是你的启动项目的目标框架问题了,有可能是你的目标框架为Client Profile的模式,如下所示。

如果我们把它修改为正常的.NET Framework框架方式,那么编译就可能完全通过了。

4、.NET安装包的设置

为了方便客户部署使用,我们很多时候,可能把程序做成一个安装包的形式,这种模式也需要考虑32位和64位的差异,一般我们可以选择X86的平台兼容模式,这种情况下,需要我们在安装项目的属性里面设置X86的平台属性,如下所示。

这样我们生成的安装包,就能成功部署在32位和64位的系统上运行了(他们都使用了32位的程序模式运行)。程序安装后,我们可以看到它的目录也是在X86的程序目录下的。

我们制作安装包,一般情况下,我们可能需要先创建一个空白的项目,然后把相关的发布文件添加到项目中去,这里面其实也有一些讲究,一般情况下,我们先把主程序添加进去,其他部分会根据引用关系自动添加了。如果你一股脑把编译目录里面的DLL都加入进去,很多可能就会出现重复引用的情况。

因此避免以上的问题,一般先添加主程序的EXE文件,然后等它的相关DLL都已经自动引入了,最后检查缺少那些DLL和一些文档文件,然后再依次补充一些就可以了。

安装包除了上面情况需要注意外,还需要注意你的系统必备的设置

如果是.NET4的程序,我们一般勾选Microsoft .NET Framework4(X68和X64)这个必备组件(注意不是Client Profile),这样我们可以检测用户的系统是否安装了必备的环境,如果正常则可以成功运行起来了。

以上就是我在开发项目中,经常用到的一些设置属性,虽然很多看似很普通,但是每次必须确保已经成功设置好了,否则可能出现一些错误莫名其妙,会兜很多弯路。

.NET项目开发的几个非常重要的项目设置的更多相关文章

  1. [openwrt 项目开发笔记]: 传送门

    “Openwrt 项目开发笔记”系列传送门: [Openwrt 项目开发笔记]:Openwrt平台搭建(一) (2014-07-11 00:11) [Openwrt 项目开发笔记]:Openwrt平台 ...

  2. PhpStorm创建Drupal模块项目开发教程(5)

    Drupal项目开发中,问题跟踪器的设置,可以保证信息的交互.是开发中,不可或缺的部分. 接下来,就PhpStorm IDE中,问题跟踪器集成的配置操作就行图文解说. Settings | Tasks ...

  3. J2EE学习从菜鸟变大鸟之八 企业级项目开发的思考

    什么是企业级项目开发 "企业级项目".企业级项目开发,Java也是企业级项目开发,这个我们到处说.听,每天被我们挂在嘴边,可是到底什么项目才算是"企业级"?自己 ...

  4. IDEA 学习笔记之 Maven项目开发

    Maven项目开发: 配置Maven: 新建Maven项目: 选择webapp: 和eclipse一样,设置: 修改maven配置,添加一个新属性,可以加快项目创建速度: 完成: 新建java和tes ...

  5. 项目开发中Maven的单向依赖-2022新项目

    一.业务场景 工作多年,在真实的项目开发中经常会遇到将一个项目拆分成多个工程的情况,比如将一个真实的项目拆分成controller层,service层, dao层,common公共服务层等等.这样拆分 ...

  6. Python基础之模块:7、项目开发流程和项目需求分析及软件开发目录

    一.项目开发流程 1.项目需求分析 明确项目具体功能: 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求 参与人员: 产品经理.架构师.开发经理 技术人员主要职责: 引导 ...

  7. git项目开发版本控制实践

    linux和bsd: 第一, bsd, berkeley software distribution, 伯克利软件套装, 是最开始的unix是开放的, 然后berkeley对unix进行了修改, 形成 ...

  8. CakeDC(cakephp company)Git workflow--适合于较大团队大型项目开发

    CakeDC Git workflow是一个项目开发和版本发布的工作流,在这个工作流程中开发和版本发布周期是基于几个关键阶段(key phases): Development: 所有活跃的开发活动都由 ...

  9. NET中小型企业级项目开发架构系列(一)

    前端时间我们开发了基于Net的一套搭建sprint.NET+NHibernate+MVC+WCF+EasyUI等中小型企业级系统开发平台,现在把整个开发过程中的步步进展整理出来和大家分享,这个系列可能 ...

随机推荐

  1. 一个简单的通用Makefile实现

    一个简单的通用Makefile实现   Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新ma ...

  2. XP之后Windows的一些变化

    看到很多Windows开发人员,尤其是C++程序员思维还是停留在XP操作系统,当然根据工作是否需要新知识 ,这本身没有错.但是实际上Vista之后的Win7, 再之后的Win8 ,Windows已经发 ...

  3. Memcache分布式部署方案

    基础环境 其实基于PHP扩展的Memcache客户端实际上早已经实现,而且非常稳定.先解释一些名词,Memcache是danga.com的一个开源项目,可以类比于MySQL这样的服务,而PHP扩展的M ...

  4. salesforce 零基础学习(二十一)workflow Q&A

    有一篇内容专门写了workflow,后来用到的时候心生疑问,不知道小伙伴有没有和我想法一样的,workflow具体内容原来已经说过,不在过多叙述,只说一下运行条件. 那就是:当满足运行条件时,执行相关 ...

  5. C++11模板类使用心得

    1.推荐使用std::shared_ptr<TaskT>代替指针TaskT*使用,shared_ptr是一种智能指针,能自主销毁释放内存,在c++11中被引入,在多线程编程中有很大的用处, ...

  6. KlayGE 4.4中渲染的改进(一):只需要SM3的TBDR

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2736 KlayGE从4.0开始引入deferred rendering层(DR),并且这几个 ...

  7. Java多线程系列--“JUC原子类”01之 框架

    根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类. 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIn ...

  8. Socket桥(转载)

    最好方案:使用haproxy 或者nginx转发.自己写程序性能和监控难保证,推荐使用开源软件替代. 源地址为:http://baishaobin2003.blog.163.com/blog/stat ...

  9. 轻松自动化---selenium-webdriver(python) (五)

    本节要解决的问题: 层级定位 场景: 假如两个控件,他们长的一模样,还都叫“张三”,唯一的不同是一个在北京,一个在上海,那我们就可以通过,他们的城市,区,街道,来找到他们. 在实际的测试中也经常会遇到 ...

  10. Tools - VirtualBox

    为CentOS虚拟机安装增强功能 启动CentOS虚拟机,点击"菜单 -> 设备 -> 安装增强功能". vboxadd的映像文件将会被挂载到虚拟机,在桌面也可以看到, ...