2013-04-14 25 views
0

我想使用nant来为c#项目构建解决方案,但是我在指定我的构建文件中的资源时遇到问题。我得到错误代码: CS0234:名称空间'Darkside'中不存在类型或名称空间名称'属性'。我如何修改我的构建文件以消除错误?Nant不会识别namespace.Properties

这里的代码在我的源文件,是造成这一问题的片段之一:

Image enemyImage = DarkSide.Properties.Resources.DarkSide_Asteroid_Medium_Gray; 

其中阴暗面是该项目的命名空间,剩下的访问资源

这里我的构建文件的一个片段:

<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> 

回答

0

你或许应该定义prefixresources标签(与dynamicprefix =“真”)。

<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>任务生成匹配微软的Visual Studio.NET,前缀属性的值产生的那些清单资源名称<resources>元素应与C#项目的“默认名称空间”匹配,并且dynamicprefix属性的值应设置为“true”。

+0

即使在追加默认命名空间后,我仍然得到相同的错误相同的次数。 – Mozly

+0

@Mozly尝试使用prefix =“DarkSide.Properties.Resources”和dynamicprefix =“false”。 –

+0

@Mozly啊...你也需要一个更好的包括CS。类似**的内容包括名称=“Darkside/**/* .cs”** –