如何在VS 2010中使用 VS2013的vs2010解决方案配置

18:17 提问
VS2010的网站管理工具在VS2013中怎么用
我用VS2013做了一个网站,需要添加角色和账户,VS2010上的网站管理工具在2013版本好像去掉了? 那要怎么用VS2013添加角色和账户呢?
按赞数排序
VS2013从页面上取消了配置工具的链接,可以通过命令行方式进入,具体参考:
其他相似问题
相关参考资料如何用 VS 2013 打包 VC++ 程序?
如题,我用VS2013写好了一个程序,在本机上运行一切正常。但是如果直接把exe文件放到另一台机器上用,则会出现:Windows XP:不是一个正常的win32程序Windows 7:缺少msvcp120d.dll能否有一种方法把程序运行所需要的环境一并打包,使之可以在任何Windows计算机上使用?ps:小问题——用VS2013写出来的VC++程序,编译过之后是机器代码还是.net托管代码?
按投票排序
现在,我们深入探讨一下:《如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件》。这个问题是比较常见且容易造成初学者困惑的,作为曾经撞了无数次南墙的初级代码狗终于看到了自己能够回答的问题,那么就让我来简单阐述一下造成这个问题的简单原理极其简单解决方法,如有错误纰漏敬请指正。/*我们讨论的是非托管的C++程序。*/为了方便说明,我们新建一个简单的控制台应用程序项目,直接如图:非常简单,一个使用了C++标准库的控制台应用程序,在装有开发环境的本机顺利执行出如下效果:真是一个旷世奇作,我们迫不及待地就此发给XP老哥炫耀,万万没想到:装逼不成反被XP老哥奚落:“负分滚粗!”这里我们遇到了题主遇到的问题之一,确实叫人纳闷,不过随便搜索一下就会有解决方法:是的,在项目配置属性中,将平台工具集选择为"Visual Studio 2013 - Windows XP (v120_xp)",即可解决“无效的 Win32 应用程序”问题。但是我们还要知其所以然,为什么?项目默认的Visual Studio ) 与 Visual Studio 2013 - Windows XP(v120_xp) 生成出来的可执行文件有何区别,以至于前者在XP上执行会出现那样的错误?最直觉的方法自然是比较一下两版执行文件的区别,我们选用PE (:32位或64位Windows操作系统使用的可执行程序或者动态链接库的文件格式)工具
进行PE文件头结构比较,很容易看到区别:看到打红叉的地方,就是两个文件不同之处,其他地方几乎没有区别。关于PE文件结构是另外一个话题,我们暂不深入讨论。单就这两处我们顾名思义一下就很容易明白:MajorOSVersion ,(目标)操作系统主版本号 ,选择默认平台工具集的文件的值是6,后者是5。MinorOSVersion ,(目标)操作系统次版本号,前者是0,后者是1。MajorSubsystemVersion,(目标)Win32子系统主版本号,前者是6,后者是5。MinorSubsystemVersion,(目标)Win32子系统次版本号,前者是0,后者是1。总结一下:一个是6.0 ,一个是5.1 。很明显5.1不就是XP的版本号么,6.0就是Vista呗?我们是否可以认为,项目默认选择的“平台工具集”生成的可执行文件是不能在6.0以下版本的Windows运行的?试验结果是:当我把6.0手动修改成5.1之后,这个文件立刻可以正常在XP里运行了,事实上Major/MinorOSVersion的值似乎没有起到什么作用,仅仅修改XxxxxSubsystemVersion的值就可以保证程序顺利执行起来了。反之亦然。同时还发现:在XP中,改为5.1可以,5.2及更高就不行。对于这个问题的认识虽然仍流于表面,但由于知识有限,我们就不再深究PE结构中的这几个值的深层次含义了。当然如有大牛指点一二就更好了。现在好了!我们不但解决了XP的运行问题,还大致了解了问题的根源。那么让我们继续发布吧!将新的、XP的、“5.1的”版本发给XP老哥:我勒个去?你等等,我再编译一个release版本…… 试试:擦?不是说好的“Release"吗?你等等,不就是一个dll文件吗,我这里有!我发给你……我从自己的系统(Win 8.1 x64)C:\Wdinwos\system32 文件夹找一个MSVCP120.DLL发过去:是啊,这不是逗呢?拿64位的dll文件去冒充32位,能行? 重新去VS目录里扒一个正确的32位msvcp120.dll 补上:又来,这次叫做MSVCR120.dll ,不仔细看还真没认出来。继续补上:呵呵呵呵呵,终于得以正确运行了,但是这么狼狈的炫耀怎么能让人高兴起来呢?经过一番折腾,好歹知道了是因为缺少文件,那么下次发布程序把这些瓶瓶罐罐DDLL都带上打包不就行了吗?没错,确实是这么个道理,但总感觉很不专业的样子。所以一个正常的解决方案就是和其他答案中所说的那样,让目标机器安装
。这个东西的作用就是:安装运行使用 VisualStudio2013 生成的 C++ 应用程序时所需的运行时组件。简单观察安装后系统中多出了哪些文件:这样一看,“运行时组件”就变得直观和具体了。它们都是什么呢?我们先去VS的安装目录中看一下:通过路径很容易理解,这是有关VC的redist(再发行)的东西,我们进x86看一下:通过路径很容易理解,这是有关VC的redist(再发行)的东西,我们进x86看一下:有关CRT(运行时库),MFC,MFCLOC(MFC的本地化文件)等等,我们看看CRT里面:看到了眼熟的这两个dll了,实际上你参考前面那个XP多出文件的图片,那些dll都能在这里找到。看到了眼熟的这两个dll了,实际上你参考前面那个XP多出文件的图片,那些dll都能在这里找到。这就是 Visual C++ Redistributable 包括的东西,每个VS版本都不一样。VS2013对应的就是120。那管它是VS2013还是2012还是2008,对应的发行包给装上不就完了。没错。但是我们还要继续研究一下,至少,研究一下如何让一个可执行文件“独立”运行在XP上。回到项目配置,如下图:我们看到,运行库这一项,包含4种选择。废话不多说,我们简单粗暴干脆每一种都生成一个进行比较:四种版本,分别起了对应的名称,多线程(MT),多线程DLL(MD),多线程调试(MTd),多线程调试DLL(MDd)。利用
观察比较它们的 函数导入表 ,发现:1. 多线程DLL (MD)和 多线程调试DLL (MDd)两者都导入了2个MSVCxxxx.dll (黄箭头所指),但细看又不同,调试版本(MDd)导入的是MSVCP120D.dll和MSVCR120D.dll,比非调试(MD)的那个都多一个字母D。很明显这是配套给调试版的运行时库。而我们之前安装的发行包所部署的都是不带D的版本,是给Release版的程序配套使用的。 顺便一提MSVCP代表MicroSoft Visual C++(Plus) ,MSVCR则代表MicroSoft Visual C(没有+)Runtime。 一个是C++运行时库一个是C运行时库。2.多线程(MT) 与 多线程调试(MTd)貌似一样,都没有MSVCP和MSVCR函数导入,只有Kernel32.dll。同时观察这两个文件的体积,都比MD或MDd大了很多,这正是它们不需要导入运行时库DLL函数的原因,因为它们把运行时库静态编译到自己的文件中去了。这也代表着它们运行的时候不会再依赖外部的运行时库DLL文件。所以答案就在这里,想要你的exe独立运行在XP中:1.将平台工具集选择为"Visual Studio 2013 - Windows XP (v120_xp)"。2.将运行库选择为 【多线程 /MT 】或【多线程调试 /MTd】。3.当然如果使用了MFC,同理的要设置【在静态库中使用MFC】:事情很简单,大致就是这样了。
以 d 结尾,按照微软的惯例这是个debug版本的dll。你编译成release版本先,debug版本的dll只有装了开发工具的机器上才会有。另外如果还是缺乏 msvcp120.dll ,可以先安装下,MSVCRT 的 120版本。如果你用MSI打安装包的话,可以选择添加msvcrt支持。
1 开发面向XP的程序的话,需要改用v120_xp工具集。默认是v120,连接的CRT库啦(不要告诉我你不用new只用VirtualAlloc)Windows SDK库啦都不支持XP。2 当然可以,市面上很多打包程序,不想用打包软件的话自己把需要用的DLLzip一个包也是可以的。不过打包msvcp120d.dll给外部用户是违反最终用户授权协议的,这个是调试版的DLL,仅供内部测试用。正式发布的时候应该打包Release版的程序。
我注意到了一件事:Windows 7:缺少msvcp120d.dll——你莫非给人复制的还是debug版本的exe?把dll打包就好了,包括其它第三方库的dll。
这个是常识啦。在项目属性里,选择c++标签页,在代码生成那里,有个运行时库,记得选第一个(默认的选择是一定会依赖 比如某个 mscrt XX (d).dll 的 。这样它就不会引入和你的 vs 相关的 dll 了。还有我个人还会在第一个标签页哪里,选择静态链接 atl 。(这个好像最好这么选吧,我不确定)。生成后,你可以用 dependency 程序打开你的 exe/dll ,check 一下它都导入了那些 dll。只要引用的都是你提供的,或者系统一定有的 dll。就没问题了。
看了写的,不明觉厉。如果楼主有以下想法,请接着看:1,我就是不想再设置了2,我就是不想重新编译了3,我就这么编怎么滴吧于是乎,楼主,在一个风高月黑的晚上,对着屏幕,苦思冥想,抽一口香烟,摸摸渣渣的胡须,打开了网页,从网上下了一个叫InstallShield的神器,本着No Zuo No Die的宗旨,楼主摸摸的看了下神器的版本,是最新版楼主安装了神器,显示器瞬间闪闪发光,如有神助,一个激灵,小手一抖,打开了神器,创建了一个工程,所有内容,赤裸裸的暴露在了楼主面前:烟鬼正传:1,添加需要打包的文件的时候,InstallShield会自动提醒你,是否添加文件需要的依赖【解决了楼主的问题】2,InstallShield的强大不至于此,比如:版本控制,InstallScript脚本,各种事件,函数,满足你的一切打包需求。利益相关:和InstallShield没什么相关,觉得好用而已。
-- 其实就是要链接7.1A SDK. 没试过,黑科技么?
部署机器安装一遍VS2013 redistribute package
FROM: 使用vs2010编译出来的EXE应用程序在别的机子上运行时会提示找不到MSVCR100.dll,这该怎么解决呢?一、在运行程序的计算机上安装vc2010运行库说明:这种方法需要用户自己去安装,一般适用于大型程序,小程序不建议使用。二、在应用程序同目录上附带MSVCR100.DLL文件说明:这种方法适用于一些小项目,无需用户另外安装程序。点我下载msvcr100.dll三、在程序编译前配置VS2010项目-&属性-&配置属性-&C/C++-代码生成-&运行库-&多线程 (/MT)说明:这种方法应该对于一些程序来说最实用,仅需一个程序,放到哪都可以运行。/MT意思就是静态编译VC运行库,静态了之后就不会再依赖MSVCR100.DLL或者MSVCR80.DLL(使用VS2005)了。附带说明:MSVCR80.DLL是vs2005编译器默认的库MSVCR90.DLL是vs2008MSVCR100.DLL是vs2010的
  VS2005或者VS2008(包括VS2008 SP1)下写的MFC程序如果在别的电脑上不能运行,那么在编译的时候选择MFC静态库就OK了,虽然程序会大不少。   但是如果是Win32 Application,那么即便是使用MFC静态库也不解决问题了(事实上,此时根本就不能编译通过)。其实要使Win32程序在其他电脑上能够运行,还是很简单的。  首先,你需要提供工程Release文件夹下的exe文件。以及Release文件夹下的manifest文件(注意VC2005开始工程有两个Release文件夹了)。将这两个文件放在同一目录下。  然后,进入VS安装目录下的VC目录,搜索“Microsoft.VC90.CRT”或者“Microsoft.VC80.CRT”,具体情况视版本而定。这里我的是VS2008 SP1,版本是VC9。所以搜索前者。(实际路径为C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT)。复制该文件夹到exe文件的同一目录,把这里得到的文件一同发布就可以运行了exe了。  相应VS2010也存在同样的问题,解决方案依葫芦画瓢。转自:
只能在xpsp3上啊,xpsp1/xpsp2都不行
已有帐号?
无法登录?
社交帐号登录二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
4. 经过如上设置以后 System.Web.Extensions 的左侧的【黄色惊叹号】消失。
5. 在需要引用的.cs文件中直接在头部添加以下语句即可:
&&& using System.Web.Script.S
阅读(2438)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:' VS2010 添加System.Web.Script.Serialization引用的方法',
blogAbstract:'\r\n在VS 2010 中添加引用System.Web.Script.Serialization时,\r\n1. 需要先在 【引用】中添加 System.Web.Extensions.dll。\r\n&&& 添加前请先找到 System.Web.Extensions.dll 文件。\r\n&&& 可以在系统盘-Program Files - Reference Assemblies - Microsoft - Framework - .NETFramework - v4.0 - System.Web.Extensions.dll 中找到。\r\n',
blogTag:'vs2010,c#,.net',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}在VS2010中打开VS2013的C#项目的方法
在VS2010中打开VS2013的C#项目的方法
使用Visual Studio 2013 创建的C#工程项目(这里是Winform工程),要在Visual Studio
2010中打开,会碰到一些问题&&不兼容(连工程属性也看不了)。
网上的方法千篇一律,都是说改 .sln 和 .vcxproj
文件中相关的版本数值,sln文件的修改方法倒是可以照做,但是找不到vcxproj文件啊有木有!只有
.csproj 格式的文件,这叫我如何是好?
几经尝试失败后,我到百度贴吧的C#吧发帖求助&&(),终于有了头绪。感谢
大神指点迷津,指出可修改.csproj文件中的相关标签内容:
&TargetFrameworkVersion&v4.5&/TargetFrameworkVersion&
VS2010一般使用的是Framework 4.0,所以修改数值为4.0(如果不确定,可以看看VS软件的关于信息):
至于.sln,按照网上的方法修改即可,具体就是"Format Version"后是"11.00","Visual
Studio"后是"2010"。另外,之后两行如果有的话,也关注一下,一般就是这个"10.0.40219.1":
至此,已可顺利打开项目,不会再显示"不兼容"了。不过运行或调试时有以下信息:
------ 已启动生成: 项目: 符号包裹, 配置:
Debug Any CPU ------
项目文件包含 ToolsVersion="10.0"
设置,而此版本的 MSBuild 不支持该工具版本。该项目将视为包含 ToolsVersion="4.0"
& 符号包裹 -&
D:\WorkSpace\符号包裹\bin\Debug\符号包裹.exe
========== 生成: 成功 1 个,失败 0 个,最新
0 个,跳过 0 个 ==========
这个"ToolsVersion"还是在.csproj文件中修改,按它说的改为"4.0"好了:
上一项其实不改也没关系,下面这个则是不得不改的&&缺少对应版本的运行时所需的.NETFramework:
常规地,下载要求的 .NETFramework 4.5
应该就好,可是本人在公司实习,电脑受限,要不然我也不用VS2010了,反正我只能找其它方法。
说来也怪,之前不是修改过Framework的版本了吗?难道还有地方没修改?
我也是"病急乱投医",看到这里似乎不对劲,因为都是在以前电脑上的信息:
我不知道这个"调试源文件"是干嘛的,不过我将这里的记录都删除后也没有影响,但也没有效果,也是瞎折腾了一番。
万万没想到,最终我还是成功解决了这个问题。只需修改App.config文件中的&supportedRuntime&标签中的特征sku的值为".NETFramework,Version=v4.0"即可:
结束。祝愉快。
查看原文:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 vs2010创建解决方案 的文章

 

随机推荐