在开发.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. C# WPF 让你的窗口始终钉在桌面上

    IntPtr hWnd = new WindowInteropHelper(Application.Current.MainWindow).Handle; IntPtr hWndProgMan = F ...

  2. Ubuntu环境搭建系列—Chrome/JDK/Android篇

    其实每次重装Ubuntu系统的时候都要进行一次基本到环境配置,而且每次总会忘记一些环境配置到东西,所以就写下这个博文,方便自己以后重装系统的时候回顾,同时也给大家做为重装系统后基本环境搭建的参考. 因 ...

  3. vim添加或删除多行注释

    一.多行注释的添加 1. vim的命令模式下(ESC 进入命令模式): 2. 按CTRL+V进入可视化模式(VISUAL BLOCK): 注意:vim命令模式下v进入的是visual模式,ctrl+v ...

  4. Objective-C实现发短信和接电话

    发短信: [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://10000"]]; 打电话: ...

  5. NoSQL和Redis简介及Redis在Windows下的安装和使用教程

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/103.html?1455869099 NoSQL简介 介绍redis前,我 ...

  6. Thrift架构~windows下安装和Hello World及编码引起的错误

    最近开始正式接触Thrift架构,很牛B的技术,它被apache收纳了,属于开源中的一员,呵呵. 概念: Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基 ...

  7. Node.js入门:包结构

        JavaScript缺少包结构.CommonJS致力于改变这种现状,于是定义了包的结构规范(http://wiki.commonjs.org/wiki/Packages/1.0 ).而NPM的 ...

  8. Atitit hsv转grb  应该优先使用hsv颜色原则 方便人类

    Atitit hsv转grb  应该优先使用hsv颜色原则 方便人类 1.1. 1.1.hsv色卡1 1.2. 从 HSV 到 RGB 的转换1 1.3. HSVtoRGBColorV22 1.1.  ...

  9. C#学习系列-this的使用

    如有错误,欢迎指正. 1.代表当前类,在当前类中可使用this访问当前类成员变量和方法(需要注意的是 静态方法中不能使用this),也可用于参数传递,传递当前对象的引用. 下面贴代码: class P ...

  10. mysql-5.7.17-winx64免安装版,win10环境下安装配置

    下载地址:http://dev.mysql.com/downloads/file/?id=467269 1.解压到自定义目录:我解压到了D盘的根目录 2.复制my-default.ini 重命名 my ...