C# 从visual studio 2005升级到visual studio 2008

C# 从visual studio 2005升级到visual studio 2008,c#,visual-studio,visual-studio-2008,visual-studio-2005,C#,Visual Studio,Visual Studio 2008,Visual Studio 2005,我已经将我的一个c语言项目从VisualStudio2005升级到VisualStudio2008并生成了DLL。但是升级VisualStudio后DLL的大小是6kb,升级前是16KB。为什么尺寸变小了??这会有什么问题吗 我还有一个问题b/w bin和obj文件夹的区别是什么??它在vs 2008中提供了正确的dll,vs 2005使用.NET 2.0,而vs 2008允许您使用.NET 3.5。也许微软优化了代码生成 编辑:与bin和obj一样: 编译期间的所有中间文件都放在中间目录中,通

我已经将我的一个c语言项目从VisualStudio2005升级到VisualStudio2008并生成了DLL。但是升级VisualStudio后DLL的大小是6kb,升级前是16KB。为什么尺寸变小了??这会有什么问题吗


我还有一个问题b/w bin和obj文件夹的区别是什么??它在vs 2008中提供了正确的dll,vs 2005使用.NET 2.0,而vs 2008允许您使用.NET 3.5。也许微软优化了代码生成

编辑:与bin和obj一样:

编译期间的所有中间文件都放在中间目录中,通常为obj\ConfigurationName。在C中,这可能是清单、缓存、资源、生成的文件等。。。在C/C++中,还包括每个编译文件的.obj文件


DLL/EXE和PDB的实际输出随后被复制到输出目录,通常为bin\ConfigurationName。

VS 2005使用.NET 2.0,而VS 2008允许您使用.NET 3.5。也许微软优化了代码生成

编辑:与bin和obj一样:

编译期间的所有中间文件都放在中间目录中,通常为obj\ConfigurationName。在C中,这可能是清单、缓存、资源、生成的文件等。。。在C/C++中,还包括每个编译文件的.obj文件


DLL/EXE和PDB的实际输出随后被复制到输出目录(通常为bin\ConfigurationName)。

即使您像Visual Studio 2005一样使用Visual Studio 2008时以.NET 2.0为目标,您仍然在使用Visual Studio 2008附带的新编译器。由于编译器不同,文件大小将不同

作为一些差异的示例,VisualStudio2008附带的msbuild版本现在提供了/m选项,该选项允许编译器使用多个CPU核优化其构建时间


正如Daniel Rose所回答的,新的编译器将提供更多的优化。您仍然可以使用Reflector之类的工具来验证DLL之间的IL是否相同。

即使您像Visual Studio 2005一样使用Visual Studio 2008时以.NET 2.0为目标,您仍然在使用Visual Studio 2008附带的新编译器。由于编译器不同,文件大小将不同

作为一些差异的示例,VisualStudio2008附带的msbuild版本现在提供了/m选项,该选项允许编译器使用多个CPU核优化其构建时间

正如Daniel Rose所回答的,新的编译器将提供更多的优化。您仍然可以使用Reflector之类的工具来验证DLL之间的IL是否相同。

文件大小: 默认情况下,.NET 3.5编译器使用512字节的文件对齐方式,而早期版本使用更大的4096字节。除了在代码的大部分使用不同的预处理器指令的可能性之外,这是最可能的解释。更紧密的对齐会产生更小的二进制文件,不会导致任何问题

编辑:根据要求,提供有关此选项的详细信息。从…起此链接包含有关如何在Visual Studio中设置属性的说明

每个部分将在一个边界上对齐,该边界是/filealign值的倍数。没有固定的默认值。如果未指定/filealign,公共语言运行库将在编译时选择默认值

通过指定节大小,可以影响输出文件的大小。修改节大小对于将在较小设备上运行的程序可能很有用

bin和obj文件夹: bin文件夹是输出文件夹,obj目录是中间输出文件夹。您构建的可执行文件将放在bin目录中,当然所有这些都是可自定义的,但这是默认值。

文件大小: 默认情况下,.NET 3.5编译器使用512字节的文件对齐方式,而早期版本使用更大的4096字节。除了在代码的大部分使用不同的预处理器指令的可能性之外,这是最可能的解释。更紧密的对齐会产生更小的二进制文件,不会导致任何问题

编辑:根据要求,提供有关此选项的详细信息。从…起此链接包含有关如何在Visual Studio中设置属性的说明

每个部分将在一个边界上对齐,该边界是/filealign值的倍数。没有固定的默认值。如果未指定/filealign,公共语言运行库将在编译时选择默认值

通过指定节大小,可以影响输出文件的大小。修改节大小对于将在较小设备上运行的程序可能很有用

bin和obj文件夹:
bin文件夹是输出文件夹,obj目录是中间输出文件夹。您构建的可执行文件将放在bin目录中,当然所有这些都是可自定义的,但这是默认设置。

不要担心dll大小。现在,2010年j

乌斯特出来了。现在我们不需要vs 2010了,你能解释一下为什么升级后尺寸变小了吗?一个在发布中,一个在调试中吗?不,我不能。我假设您还将构建从2.0升级到了3.5,因此您可以预期差异。如果它工作,大小应该是重要的。嗨,丹,这两个都是建立与释放只,但有大小的差异。。。。嗨,Kobi,我为这两种情况安装了3.5版本的.net,不用担心dll的大小。现在,2010年刚刚问世。现在我们不需要vs 2010了,你能解释一下为什么升级后尺寸变小了吗?一个在发布中,一个在调试中吗?不,我不能。我假设您还将构建从2.0升级到了3.5,因此您可以预期差异。如果它工作,大小应该是重要的。嗨,丹,这两个都是建立与释放只,但有大小的差异。。。。嗨,Kobi,我为这两个案例安装了3.5版本的.net谢谢你的回复,但我不清楚你的回答你能不能提供一个最好的链接让我理解我还有一个问题b/w bin和obj文件夹有什么区别??这在vs中提供了正确的dll2008@jbp117:bin文件夹是输出文件夹,obj目录是中间输出文件夹。您构建的可执行文件将放在bin目录中当然所有这些都是可自定义的,但这是默认的。vs 2008的目标框架是.net 2.0,vs 2005的默认文件对齐方式为4096字节,但vs 2008的默认文件对齐方式为512字节。这就是原因,你说的对吗?是的,这就是你的文件变小的原因。谢谢你的回答,但我不清楚你的答案。你能不能给我一个最好的链接让我理解我还有一个问题b/w bin和obj文件夹有什么区别??这在vs中提供了正确的dll2008@jbp117:bin文件夹是输出文件夹,obj目录是中间输出文件夹。您构建的可执行文件将放在bin目录中当然所有这些都是可自定义的,但这是默认的。vs 2008的目标框架是.net 2.0,vs 2005的默认文件对齐方式为4096字节,但vs 2008的默认文件对齐方式为512字节。这就是原因,你说的对吗?是的,这就是你的文件变小的原因。从技术上来说这是正确的,但它不同于琐碎的,他已经知道不同的编译器产生不同的大小,与问题无关/m。从技术上来说这是正确的,但是它从琐碎到不同,他已经知道不同的编译器会产生不同的大小,再到与问题/m无关。