2010-11-23 16 views
3

私はビルドプロセスを自動化しようとしています。これを行うには、コードに対してNUnitテストを実行できるように、asp.Netウェブサイトのapp_codeをdllにコンパイルする必要があります。私はクラスライブラリを使用することを提案する前に、私はあなたと同意すると言っていますが、私の上司は別の見方をして、私たちのWebサイトでDLLの使用を拒否しました。NANTまたはcsc.exeにWebサービスへの参照を含めるにはどうすればよいですか?

問題点は、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> 

私の目標を達成する別の方法がある場合は、私に知らせてください。あなたが最も可能性が高い後は、Webサービスプロキシクラスを生成し、プロジェクトににそのコンパイルされているもの

アル

答えて

1

。これを行うには、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> 
+0

この質問を投稿した直後に私はwsdl.exe –

+0

を発見しました。これは.NETプロジェクトの「サービス参照」の有効な方法ですか?私はプロキシクラスを使用する必要があるか、実際には "サービス参照"オブジェクトを直接参照する必要があるのか​​混乱していますか? – D3vtr0n

+0

@devtron:タスクは、私があなたが参照していると仮定しているWCFベースのサービスではなく、Webサービス用です。 WCFサービス参照は、ServiceModelメタデータユーティリティ(svcutil.exe)によって生成されます。 タスクを使用して、svcutil.exeを呼び出して、生成された出力ファイルをソースブロック(MyProxy.csと同様)に含めることができます。 –

関連する問題