Как включить ссылки на веб-сервисы в NANT или csc.exe? - PullRequest
3 голосов
/ 23 ноября 2010

Я пытаюсь автоматизировать наш процесс сборки. Для этого мне нужно скомпилировать app_code на веб-сайте asp.Net в dll, чтобы я мог запустить тест NUnit для кода. Прежде чем вы предложите мне использовать библиотеку классов, я скажу, что я согласен с вами, однако мои начальники придерживаются другого мнения и наложили вето на использование dll на наших веб-сайтах.

У меня проблема в том, что классы app_code ссылаются на веб-сервисы. Как получить задачу csc, чтобы включить их при компиляции кода в библиотеку классов? Цель Nant, которую я имею до сих пор:

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

Если есть другой способ достижения моих целей, пожалуйста, дайте мне знать.

Al

1 Ответ

1 голос
/ 24 ноября 2010

Скорее всего, после этого вы создадите прокси-класс веб-службы и включите его в свой проект.Для этого взгляните на задачу wsdl , которая является частью NantContrib .

Вы сможете сделать что-то вроде следующего:

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