为什么我们需要在.NET Framework中使用SDK?

3
我们需要同时安装Windows SDK和.NET Framework。如果我们已经有了框架,为什么还需要SDK呢?
编辑:这不仅适用于.NET开发。如果您想开发Silverlight应用程序,您还需要安装其他的SDK。为什么?
3个回答

3

基本上,.NET框架包括大部分基本开发所需的工具 - 编译器、项目的msbuild引擎。然而,一些特定任务 - 汇编链接、COM和Web服务的代码生成、CIL分析等 - 需要另外一组工具,这些工具包含在Windows SDK中。

我认为,.NET框架的分发已经足够庞大了,如果因为这些工具而变得更加庞大,那将不是好事。


@elder_george:感谢您的回答。我们不必分发框架库并期望它在部署机器上存在。这是否意味着,如果我们使用SDK中的某些内容,我们也必须分发它(因为我们不希望最终用户在他/她的机器上安装Windows SDK)? - Sandbox
通常情况下,您不需要它。您通常引用的所有库都属于框架,因此不应该有任何依赖关系。Windows SDK 用于编译,而不是运行时(此外,我怀疑某些部分的重新分发是被禁止的)。我在构建后唯一发现有用的工具是 gacutil,但我可以没有它。 - elder_george

0

.NET框架仅涵盖托管应用程序,是Windows API的子集。 Windows SDK(或今天叫什么名字)是一个更大的API集合,其中包括尚未被托管代码包装的API。


@Andrew Keith:在使用VS2008编译时,出现了一些lc.exe问题(请谷歌搜索...已知问题),IDE指示我设置lc.exe路径,该路径指向sdk中的一个位置。因此,我不得不安装SDK。 - Sandbox

0

你是在说当一个人安装Visual Studio时,Windows SDK是否也会被安装在.NET框架中吗?

如果是的话,这是因为Windows SDK主要用于非托管开发。

此外,在C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ bin文件夹中,您还有像mt.exe这样的工具,可以用于将清单嵌入到exe和dll中。(对于托管应用程序也适用)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接