使用构建操作编译和内容编译的.cs文件之间有什么区别?

时间:2014-02-03 10:34:02

标签: c# asp.net visual-studio-2010

我有一个本地运行的ASP.NET应用程序和一个BAT脚本,它创建了一个带有.cs,.js,.css和其他文件的可交付文件夹。内容被复制到开发或测试环境。

要求.cs文件在开发服务器上具有“编译”构建操作,在测试服务器上具有“内容”。

在开发环境中.cs文件应该具有构建操作“编译”。在我的Visual Studio项目中,所有.cs文件默认都具有构建操作“编译”。我假设他们在复制到开发环境时会保留这些信息。

在测试环境中.cs文件“应该”具有构建操作“内容”。我有另一个BAT脚本,它可以更改.proj文件中.cs文件的构建操作。然后我重建项目并验证所有.cs文件都具有指定为“内容”的构建操作。然后我将.cs文件复制到测试环境。

有没有办法可以验证测试环境中的.cs文件实际上是否有构建操作“内容”?或者这个关于构建类型的信息是否保存在其他地方,这就是为什么测试环境中的.cs文件就像它们仍然具有“编译”的构建操作一样?

我认为在我的场景中,构建操作更改不会反映在测试服务器上,我想知道原因。

有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:1)

回答你在标题中提出的问题:

构建操作定义在构建期间对文件执行的操作。编译是.cs文件的默认设置,这是很自然的,因为通常你想要从中创建一个机器(如果是.net)的代码。从编译的cs文件生成可执行代码。内容意味着这些文件只是以某种方式属于您的解决方案的文件,在构建期间应该或不应该复制到目标文件夹,这由“复制到输出目录”设置定义。除此之外的Nothins特别针对此类文件。

但我不明白为什么你必须把你的文件构建动作放到“内容”,如果你无论如何必须手动复制它们进行测试。为什么不能直接从项目文件夹中复制它们。