不同的构建操作在 Web API 项目中起什么作用(也可能适用于其他类型)?
我看到:无、编译、内容、嵌入式资源、AdditionalFiles、CodeAnalysisDictionary、ApplicationDefinition、页面、资源、SplashScreen、DesignData、DesignDataWithDesignTimeCreatableTypes、EntityDeploy、XamlAppDef、Fakes
我在 StackOverflow 上发现了类似的问题,但它们没有链接到任何 Microsoft 文档或包含所有项目。即,AdditionalFiles 或 Fakes 有什么作用?
“Visual Studio 项目属性中的各种“生成操作”设置是什么以及它们的作用是什么?” https://stackoverflow.com/questions/145752/what-are-the-various-build-action-settings-in-visual-studio-project-properties有一个不完整的列表。
是的,我确实看过,但在文档中找不到它。
没有关于这些属性的集中文档。原因是这个列表是可扩展的,每个 Visual Studio 项目类型都可以提供它自己的。这也意味着下拉列表的内容会根据您安装的 Visual Studio 负载、扩展、您使用的编程语言等而变化。
这是如何扩展代码分析的示例:
<!-- Make AdditionalFiles and CodeAnalysisDictionary available as a Build Action in Visual Studio -->
<ItemGroup>
<AvailableItemName Include="AdditionalFiles" />
<AvailableItemName Include="CodeAnalysisDictionary" />
</ItemGroup>
其他的可以通过爬取MsBuild的targets文件夹找到,每个都是通过注册的AvailableItemName
中的项目.target
files.
- None,
- 编译 - 将文件传递给属于项目类型的编译器
- 内容 - 将文件标记为内容并可选择将它们复制到输出目录
- 嵌入资源 - 用于将内容作为资源嵌入到程序集中
- 附加文件 - 由代码分析功能使用。在 Microsoft.CodeAnalysis.Targets 中定义
- CodeAnalysisDictionary - 由代码分析功能、FxCop 和 Roslyn 使用。在 Microsoft.CodeAnalysis.Targets 中定义
- ApplicationDefinition - 在 Microsoft.Winfx.targets 中定义
- 页面 - 在 Microsoft.Winfx.targets 中定义
- 资源 - 在 Microsoft.Winfx.targets 中定义
- SplashScreen - 在 Microsoft.Winfx.targets 中定义
- DesignData - 在 Microsoft.Winfx.targets 中定义
- DesignDataWithDesignTimeCreatableTypes - 在 Microsoft.Winfx.targets 中定义
- EntityDeploy - 在 Microsoft.Data.Entity.targets 中定义
- XamlAppDef - 在 Microsoft.Winfx.targets 和 Microsoft.Xaml.targets 中定义
- Fakes - 由 Fakes 框架(Visual Studio Enterprise 的一部分)使用。一个框架,允许编写可以绕过静态、内部和私有 API 的测试。
除了您发布的系统之外,我的系统还有一些额外的系统。您需要搜索每种项目类型的文档以了解其含义。根据其来源,您可能需要查看第三方系统的文档。
MsBuild 的可扩展性使其成为一个非常强大的系统,同时它有时也会使弄清楚事情为何如此的过程变成噩梦。我一直坚持这样的推理:“如果我不知道它意味着什么,我可能就不需要它......”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)