繁体   English   中英

.NET中的选择性资源编译?

[英]Selective resource compiling in .NET?

如何根据所使用的编译常量选择要编译的资源? 因此,如果VAR1 = 0,则不会在我的最终装配中添加RESOURCE_A。

我四处搜寻,但是没有找到任何有关此的信息。我猜我使用了错误的关键字,因为我怀疑没有其他人曾经遇到过这个问题/疑问。

另外,我在工作中同时使用VS2005和2008,主要是VB,尽管使用C#也没有任何问题。

您可以使用MSBuild <Choose>元素完成此操作:

<Choose>
    <When Condition=" '$(Configuration)'=='Debug' ">
        <ItemGroup>
            <EmbeddedResource Include="debug_resource.txt" />
        </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='retail' ">
        <ItemGroup>
            <EmbeddedResource Include="retail_resource.txt" />
        </ItemGroup>
    </When>
</Choose>

...当然,您可以使用$(Configuration)变量以外的其他变量。 您可以检查文件/文件夹是否存在,可以使用其他任务的输出,也可以一起使用其他变量。

编译常量仅影响代码。 您可以将两种资源都添加到程序集中,并根据编译常量来检索适当的资源。

当然,还有其他方法可以实现此目的-例如,根据定义的条件在预构建事件中复制适当的资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM