Mic*_*cci 21 .net c++ visual-studio-2010
我最近升级到Visual Studio 2010.现在,当我构建项目时,我得到一行:
1> .NETFramework,Version=v4.0.AssemblyAttributes.cpp
Run Code Online (Sandbox Code Playgroud)
我已经知道这是新构建引擎msbuild.exe的结果,但是这个文件实际上是自动创建的并放在我的本地临时目录中(c:\ Documents and Settings\me\Local Settings\Temp).有谁知道为什么要创建这个文件,以及我是否可以禁用它的创建?
顺便说一句,在我看来它似乎没有什么用处.见下文:
#using <mscorlib.dll>
[assembly: System::Runtime::Versioning::TargetFrameworkAttribute(L".NETFramework,Version=v4.0", FrameworkDisplayName=L".NET Framework 4")];
Run Code Online (Sandbox Code Playgroud)
偶尔,如http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/15d65667-ac47-4234-9285-32a2cb397e32所述,它会导致问题.因此,非常感谢有关此文件的任何信息,以及如何避免其自动创建.谢谢!
Bri*_*ian 17
这对所有语言都是通用的(C#,VB和F#也有类似的东西).
您可以禁用它的一种方法是覆盖GenerateTargetFrameworkMonikerAttribute目标:
<!-- somewhere after the Import of Microsoft.somelanguage.targets -->
<Target Name="GenerateTargetFrameworkMonikerAttribute" />
Run Code Online (Sandbox Code Playgroud)
在您的项目文件中.
Han*_*ant 12
看一下c:\ program files\msbuild\microsoft.cpp\v4.0\microsoft.buildsteps.targets.它包含GenerateTargetFrameworkMonikerAttribute目标,即生成文件的目标.Condition元素确定它何时运行,GenerateTargetFrameworkAttribute是值.如果项目设置要求/ clr构建,那将始终如此.目标中的注释非常具有误导性,关于预编译头文件的喧嚣与目标的目的无关.
它在.cpp帮助文件中生成的[TargetFrameworkAttribute]很重要,它告诉程序运行的机器上的CLR需要存在的最低版本的.NET才能成功执行程序.它的主要用途是自动启动所需的.NET版本的安装程序,非常好的功能.
LNK4221很常见,没有牙齿,你可以忽略它.可悲的是链接器不提供证明的方式来抑制警告,基本的问题是,它不能是不够具体,抑制只有这一个.抑制帮助器.cpp需要编辑.targets文件并破坏自动安装功能,我不推荐这样做.
小智 5
我通过以下步骤解决了这个问题:
%temp%
,删除所有文件在其中一个项目上进行重建.然后关闭Visual Studio 2010(是整个开发环境),然后重新打开解决方案文件.
似乎重建,重新创建丢失的文件,但Visual Studio没有注意到它,因此您必须将其关闭并重新打开它才能再次正确查看该文件.
归档时间: |
|
查看次数: |
22859 次 |
最近记录: |