2010-11-23 3 views
3

우리가 빌드 프로세스를 자동화하려고합니다. 이렇게하려면 코드에 대해 NUnit 테스트를 실행할 수 있도록 asp.Net 웹 사이트에서 app_code를 dll로 컴파일해야합니다. 내가 클래스 라이브러리를 사용한다고 제안하기 전에, 필자는 상사가 다른 견해를 가지고 우리 웹 사이트에서 DLL 사용을 거부했음을 인정합니다.NANT 또는 csc.exe에서 웹 서비스에 대한 참조를 어떻게 포함합니까?

내가 가진 문제는 app_code 클래스가 웹 서비스를 참조한다는 것입니다. 클래스 라이브러리에 코드를 컴파일 할 때 이들을 포함하는 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> 

내 목표를 달성하는 또 다른 방법이 있다면 알려주십시오. 당신이 가장 가능성이 후 웹 서비스 프록시 클래스를 생성하고 프로젝트에로 그 컴파일되어있어 무엇

답변

1

. 이렇게하려면 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> 
+0

이 질문을 게시 한 직후에 wsdl.exe –

+0

이 발견되었습니다. .NET 프로젝트의 "서비스 참조"에 유효한 방법입니까? 프록시 클래스를 사용하거나 실제로 "서비스 참조"객체를 참조해야하는 경우 혼란 스럽습니다. – D3vtr0n

+0

@devtron : 작업은 웹 서비스를위한 것일 뿐이며 내가 말하는 것으로 가정하는 WCF 기반 서비스가 아닙니다. WCF 서비스 참조는 ServiceModel 메타 데이터 유틸리티 (svcutil.exe)에 의해 생성됩니다. 작업을 사용하여 svcutil.exe를 호출하고 생성 된 출력 파일을 소스 블록 (MyProxy.cs처럼)에 포함시킬 수 있습니다. –

관련 문제