Nant不会识别namespace.Properties

时间:2013-04-14 21:44:26

标签: build nant csc

我正在尝试使用nant为c#项目构建解决方案,但是我在构建文件中指定资源时出现问题。我收到错误代码: 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>

1 个答案:

答案 0 :(得分:0)

您应该为prefix标记定义resources(使用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任务的documentation状态:

  

注意:为了让<csc>任务生成与Microsoft Visual Studio.NET生成的清单资源名称相匹配的清单资源名称,<resources>元素的prefix属性值应与“Default Namespace”匹配“C#项目,并且dynamicprefix属性的值应设置为”true“。