在开发.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. Sublime Text 2—解决中文乱码

    Sublime Text 2是一个非常棒的代码及文本编辑器,绿色小巧.速度飞快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等,有着许多其他编辑器没 ...

  2. Unity3D热更新全书-PageZero

    由于深刻的认识到自己是个思维跳跃的人,深入浅出是个我还要努力很久的目标,为了让大家不至于在我乱七八糟的文字中迷失,特整理目录一份 无分类 <Unity3D热更新全书-何谓热更新,为何热更新,如何 ...

  3. 通过 Redis 实现 RPC 远程方法调用(支持多种编程语

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/101.html?1455869487 我发现经常研究并且为之兴奋的一件事就 ...

  4. EF架构~DefaultValue让我的UnitOfWork更可读

    回到目录 在编程世界里,使用“否定式”不是一件好事,因为它的可读性并不高,但有时,为了让使用者减少代码量,还是使用了双重否定,直到DefaultValue的出现,它改变了这一切,它可以为你的属性设置你 ...

  5. Mybatis入门例子

    Mybatis是轻量级的持久化框架,的确上手非常快. Mybatis大体上的思路就是由一个总的config文件配置全局的信息,比如mysql连接信息等.然后再mapper中指定查询的sql,以及参数和 ...

  6. iOS 8.1.3 “各路助手挺尸”、“封杀一切助手

    图片来自 http://www.redmondpie.com 最近苹果发布了8.1.3系统更新.从更新日志看,没有多少变化(错误修复,提高稳定性和性能),但是苹果修复了一个"漏洞" ...

  7. iOS-网络爬虫

    1.iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据 2.iOS开发——网络使用技术OC篇&网络爬虫-使用正则表达式抓取网络数据 3.iOS—网络实用技术OC篇&am ...

  8. Jenkins的插件管理(安装和更新插件)

    使用Jenkins的编译部署项目需要依赖各种插件 下面安装Jenkins的各种插件: 1.登录Jenkins进入以下界面: 2.点击 系统管理 : 3.点击 管理插件 : 4.点击 可选插件 选择你需 ...

  9. QQ左侧滑动显示之自定义属性

    上一篇为大家实现了最基本的侧滑效果,相信很多小伙伴已经发现一个小问题了,修改Menu右侧的宽度时,我们需要修改我们的自定义方法,这样非常不方便,下面就为大家介绍一下如何通过自定义属性来控制这个的变化. ...

  10. 12个来自 Codrops 的创新交互和动画效果

    产品的用户体验是否被用户所接受,很大一部分取决于交互界面的设计,交互界面设计是整个产品设计中的核心,对于产品品质有着决定性的影响.这里集合了12个来自 Codrops 的创新的界面交互和动画效果,值得 ...