3

我试图自动化我们的构建过程。为此,我需要将 asp.Net 网站中的 app_code 编译为 dll,以便我可以针对代码运行 NUnit 测试。在您建议我只使用类库之前,我会说我同意您的看法,但是我的上司持有不同的观点并否决了在我们的网站中使用 dll。

我遇到的问题是 app_code 类引用了 Web 服务。将代码编译到类库中时,如何让 csc 任务包含这些?到目前为止,我的目标是:

<target name="Compile">
    <property name="nant.settings.currentframework" value="net-3.5" />
    <csc target="library" output="DocSysAppCode.dll" debug="true">
      <sources>
        <include name="D:\Inetpub\DocSys\App_Code\Common\*.cs" />
        <include name="D:\Inetpub\DocSys\App_Code\DocSys\SiteLegislation.generated.cs" />
      </sources>
      <resources>
        <include name="D:\DocSysQueue\Web References\WS_DocSys\*.*" />
        <include name="D:\DocSysQueue\app.config" />
      </resources>
    </csc>
</target>

如果还有其他方法可以实现我的目标,请告诉我。

4

1 回答 1

1

您最可能需要的是生成 Web 服务代理类并将其编译到您的项目中。为此,请查看作为NantContrib一部分的wsdl任务。

您将能够执行以下操作:

<target name="generate-proxy"/>
    <wsdl path="${wsdl.url}" language="CS" namespace="svc" outfile="MyProxy.cs" verbose="true" />
</target>

然后,您可以获取该任务的输出 (MyProxy.cs) 并将其编译到您的项目中。

<target name="Compile" depends="generate-proxy">
    <property name="nant.settings.currentframework" value="net-3.5" />
    <csc target="library" output="DocSysAppCode.dll" debug="true">
      <sources>
        <include name="MyProxy.cs" />
        <include name="D:\Inetpub\DocSys\App_Code\Common\*.cs" />
        <include name="D:\Inetpub\DocSys\App_Code\DocSys\SiteLegislation.generated.cs" />
      </sources>
    </csc>
</target>
于 2010-11-24T19:37:06.703 回答