C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

MSBuildの参照設定の解決方法について


(過去ログ 68 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■39357 / inTopicNo.1)  MSBuildの参照設定の解決方法について
  
□投稿者/ kosy (1回)-(2009/08/06(Thu) 13:20:19)

分類:[.NET 全般] 

はじめまして。
MSBuildを利用してビルドの自動化を考えています。
以下のような構造で、MSBuildでリビルドするとコンパイルエラーになるのですが、
MSBuildで、参照先の参照設定を認識するにはどのようなプロパティをしていすればよいのでしょうか?

(ソリューション内容)
プロジェクトAでWeb参照を管理
プロジェクトBでプロジェクトAを参照設定に追加

MSBuildでプロジェクトBをビルドすると"System.Web.Services"の参照を追加ように
なり、コンパイルエラーとなります。

Visual Studio(2008)上でコンパイルすると問題なくコンパイルできます。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 実行コマンド
C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild /p:Configuration=Release
 /t:rebuild .\WindowsApplication1.vbproj

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ サンプルソース(10 行でズバリ !! Web サービス クライアント アプリケーションの開発をVBで試したないようです)
Webサービス(Service1.asmx.vb)
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

' この Web サービスを、スクリプトから ASP.NET AJAX を使用して呼び出せるようにするには、次の行のコメントを解除します。
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function ServerTime() As String
        ' サーバーの現在時刻を返します
        Return DateTime.Now.ToLongTimeString()
    End Function

    <WebMethod()> _
    Public Function LiveDate(ByVal BirthDay As DateTime) As Integer
        ' 引数で渡された日付から今日までの日数を計算します
        Return DateTime.Now.Subtract(BirthDay).Days
    End Function
End Class

Proxyプロジェクト(WindowsApplication3:クラスライブラリ)
Webサービスの参照設定を追加

実行プロジェクト(WindowsApplication1)
Imports WindowsApplication3.Service1

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim service As Service1 = New Service1

        MessageBox.Show(service.LiveDate(Me.DateTimePicker1.Value))
    End Sub
End Class


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 実行結果
Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3082]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

2009/08/06 13:02:40 にビルドを開始しました。
ノード 0 上のプロジェクト "C:\temp\WindowsApplication1\WindowsApplication1\WindowsApplication1.vbproj" (rebuild ターゲッ
ト)。
  ディレクトリ "obj\Release\" を作成しています。
EntityClean:
  Successfully cleaned the output for 0 EDMX files.
EntityDeploy:
  Processing 0 EDMX files.
  Finished processing 0 EDMX files.
PrepareForBuild:
  ディレクトリ "bin\Release\" を作成しています。
CoreResGen:
  リソース ファイル "Form1.resx" を "obj\Release\WindowsApplication1.Form1.resources" に処理しています。
  リソース ファイル "My Project\Resources.resx" を "obj\Release\WindowsApplication1.Resources.resources" に処理していま
す。
C:\temp\WindowsApplication1\WindowsApplication1\Form1.vb(6): error BC30007: 基本クラス 'System.Web.Services.Protocols.So
apHt
tpClientProtocol' を含むアセンブリ 'System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a
3a' への参
照が必要です。参照をプロジェクトに追加してください。
プロジェクト "C:\temp\WindowsApplication1\WindowsApplication1\WindowsApplication1.vbproj" (rebuild ターゲット) のビルド
が終了しました -- 失敗。


ビルドに失敗しました。

"C:\temp\WindowsApplication1\WindowsApplication1\WindowsApplication1.vbproj" (rebuild ターゲット) (1) ->
(CoreCompile ターゲット) ->
  C:\temp\WindowsApplication1\WindowsApplication1\Form1.vb(6): error BC30007: 基本クラス 'System.Web.Services.Protocols.
Soap
HttpClientProtocol' を含むアセンブリ 'System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d5
0a3a' へ
の参照が必要です。参照をプロジェクトに追加してください。

    0 警告
    1 エラー

経過時間 00:00:01.93

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -