0

我正在尝试使用 nant 为 ac# 项目构建解决方案,但是在我的构建文件中指定资源时遇到问题。我收到错误代码:CS0234:名称空间“Darkside”中不存在类型或名称空间名称“Properties”。如何修改我的构建文件以消除错误?

这是我的源文件中导致问题的代码片段之一:

Image enemyImage = DarkSide.Properties.Resources.DarkSide_Asteroid_Medium_Gray;

其中 Darkside 是项目的命名空间,其余访问资源

这是我的构建文件的片段:

<target name="build" depends="init" description="compiles the source code">
    <property name="build.dir" value="${project::get-base-directory()}/${project::get-name()}/bin/release/${project.version}${basedir.suffix}"/>        
    <mkdir dir="${build.dir}"/>
    <csc target="exe" output="${build.dir}/Darkside.exe" debug="${build.debug}">

        <sources>
            <include name="Darkside/*.cs"/>
        </sources>

        <resources >
            <include name="${project::get-base-directory()}/${project::get-name()}/Properties/**" />
        </resources>
    </csc>
</target>
4

1 回答 1

0

您可能应该prefixresources标签定义 (使用 dynamicprefix="true")。

<target name="build" depends="init" description="compiles the source code">
    <property name="build.dir" value="${project::get-base-directory()}/${project::get-name()}/bin/release/${project.version}${basedir.suffix}"/>        
    <mkdir dir="${build.dir}"/>
    <csc target="exe" output="${build.dir}/Darkside.exe" debug="${build.debug}">

        <sources>
            <include name="Darkside/*.cs"/>
        </sources>

        <resources dynamicprefix="true" prefix="DarkSide">
            <include name="${project::get-base-directory()}/${project::get-name()}/Properties/**" />
        </resources>
    </csc>
</target>

事实上,该csc任务的文档指出:

注意:为了让<csc>任务生成与 Microsoft Visual Studio.NET 生成的清单资源名称相匹配,<resources>元素的前缀属性的值应与 C# 项目的“默认命名空间”以及 dynamicprefix 属性的值匹配应设置为“真”。

于 2013-04-14T22:00:26.623 回答