强制文件夹中的文件具有构建操作 = 带有目标文件的嵌入式资源
Enforcing files in a folder have build action = Embedded Resource with target files
Visual Studio 项目有一个包含 sql 脚本的文件夹,其中的所有文件必须将构建操作设置为嵌入式资源。在添加新文件时,开发人员经常忘记更改构建操作。
我想创建一个目标文件,如果文件夹中的任何文件没有正确的构建操作,它会在编译时抛出错误。
我以前见过类似的事情。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0"
DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="MakeSureSqlFilesAreSetToCopyAlways" BeforeTargets="PrepareForBuild">
<Error Condition="!('%(Content.CopyToOutputDirectory)' == 'Always')"
Text="This Content file is not configured to Copy Always: [%(Content.FullPath)]" />
</Target>
</Project>
此代码块检查文件是否设置为始终复制。如何检查构建操作?
也希望能提供一些链接以进一步阅读有关该主题的内容。
提前致谢。
假设脚本文件位于名为 Scripts
的文件夹中,如果有任何文件的构建操作设置为 Content
并且它们的路径包含词 Scripts
.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0"
DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="MakeSureSqlFilesAreSetToEmbeddedAsResource" BeforeTargets="PrepareForBuild">
<Error Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(Content.FullPath)', 'Scripts'))"
Text="This Content file is not configured as Embedded Resource: [%(Content.FullPath)]" />
</Target>
</Project>
如果您正在处理忘记将脚本设置为嵌入式资源的开发人员,以上内容应该足够了(尽管并不全面),主要是因为 Visual Studio 将新文件的构建操作设置为 Content
默认。如果你想让它防弹,只需重复 Error
标签并将 Content
替换为所有可能的构建操作(EmbeddedResource
除外)。
Visual Studio 项目有一个包含 sql 脚本的文件夹,其中的所有文件必须将构建操作设置为嵌入式资源。在添加新文件时,开发人员经常忘记更改构建操作。
我想创建一个目标文件,如果文件夹中的任何文件没有正确的构建操作,它会在编译时抛出错误。
我以前见过类似的事情。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0"
DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="MakeSureSqlFilesAreSetToCopyAlways" BeforeTargets="PrepareForBuild">
<Error Condition="!('%(Content.CopyToOutputDirectory)' == 'Always')"
Text="This Content file is not configured to Copy Always: [%(Content.FullPath)]" />
</Target>
</Project>
此代码块检查文件是否设置为始终复制。如何检查构建操作?
也希望能提供一些链接以进一步阅读有关该主题的内容。
提前致谢。
假设脚本文件位于名为 Scripts
的文件夹中,如果有任何文件的构建操作设置为 Content
并且它们的路径包含词 Scripts
.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0"
DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="MakeSureSqlFilesAreSetToEmbeddedAsResource" BeforeTargets="PrepareForBuild">
<Error Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(Content.FullPath)', 'Scripts'))"
Text="This Content file is not configured as Embedded Resource: [%(Content.FullPath)]" />
</Target>
</Project>
如果您正在处理忘记将脚本设置为嵌入式资源的开发人员,以上内容应该足够了(尽管并不全面),主要是因为 Visual Studio 将新文件的构建操作设置为 Content
默认。如果你想让它防弹,只需重复 Error
标签并将 Content
替换为所有可能的构建操作(EmbeddedResource
除外)。