Visual Studio プロジェクトの変換ウィザードで変換する際に、ログに載らない項目がある

Visual Studio 2010 での事です。


昨日 .NET 1.1 -> .NET 4 への 移行(Windows アプリ) - お だ のスペース は気づきませんでしたが、実は変わっているのに変換ログに載らない項目がありました。


それは、Web 参照を追加した際に自動生成される Reference.cs です。変換ログでは変更無しとなっていますが、実際には再生成されています。

.NET 1.1 時の Reference.cs (変換時に BackUp フォルダに移される)

//------------------------------------------------------------------------------
// <autogenerated>
//   This code was generated by a tool.
//   Runtime Version: 1.1.4322.2470
//
//   Changes to this file may cause incorrect behavior and will be lost if 
//   the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------

// 
// このソース コードは Microsoft.VSDesigner、バージョン 1.1.4322.2470 によって自動生成されました。
// 
namespace WindowsApplication1.localhost {
  using System.Diagnostics;
  using System.Xml.Serialization;
  using System;
  using System.Web.Services.Protocols;
  using System.ComponentModel;
  using System.Web.Services;
  
  
  /// <remarks/>
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.ComponentModel.DesignerCategoryAttribute("code")]
  [System.Web.Services.WebServiceBindingAttribute(Name="Service1Soap", Namespace="http://tempuri.org/")]
  public class Service1 : System.Web.Services.Protocols.SoapHttpClientProtocol {
    
    /// <remarks/>
    public Service1() {
      this.Url = "http://localhost/WebService2/Service1.asmx";
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateDataSet", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public System.Data.DataSet CreateDataSet(System.Data.DataSet param) {
      object[] results = this.Invoke("CreateDataSet", new object[] {
            param});
      return ((System.Data.DataSet)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginCreateDataSet(System.Data.DataSet param, System.AsyncCallback callback, object asyncState) {
      return this.BeginInvoke("CreateDataSet", new object[] {
            param}, callback, asyncState);
    }
    
    /// <remarks/>
    public System.Data.DataSet EndCreateDataSet(System.IAsyncResult asyncResult) {
      object[] results = this.EndInvoke(asyncResult);
      return ((System.Data.DataSet)(results[0]));
    }
  }
}

.NET 4 に移行した Reference.cs

//------------------------------------------------------------------------------
// <auto-generated>
//   このコードはツールによって生成されました。
//   ランタイム バージョン:4.0.30319.1
//
//   このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
//   コードが再生成されるときに損失したりします。
// </auto-generated>
//------------------------------------------------------------------------------

// 
// このソース コードは Microsoft.VSDesigner、バージョン 4.0.30319.1 によって自動生成されました。
// 
#pragma warning disable 1591

namespace WindowsApplication1.localhost {
  using System;
  using System.Web.Services;
  using System.Diagnostics;
  using System.Web.Services.Protocols;
  using System.ComponentModel;
  using System.Xml.Serialization;
  using System.Data;
  
  
  /// <remarks/>
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.1")]
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.ComponentModel.DesignerCategoryAttribute("code")]
  [System.Web.Services.WebServiceBindingAttribute(Name="Service1Soap", Namespace="http://tempuri.org/")]
  public partial class Service1 : System.Web.Services.Protocols.SoapHttpClientProtocol {
    
    private System.Threading.SendOrPostCallback CreateDataSetOperationCompleted;
    
    private bool useDefaultCredentialsSetExplicitly;
    
    /// <remarks/>
    public Service1() {
      this.Url = "http://localhost/WebService2/Service1.asmx";
      if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
        this.UseDefaultCredentials = true;
        this.useDefaultCredentialsSetExplicitly = false;
      }
      else {
        this.useDefaultCredentialsSetExplicitly = true;
      }
    }
    
    public new string Url {
      get {
        return base.Url;
      }
      set {
        if ((((this.IsLocalFileSystemWebService(base.Url) == true) 
              && (this.useDefaultCredentialsSetExplicitly == false)) 
              && (this.IsLocalFileSystemWebService(value) == false))) {
          base.UseDefaultCredentials = false;
        }
        base.Url = value;
      }
    }
    
    public new bool UseDefaultCredentials {
      get {
        return base.UseDefaultCredentials;
      }
      set {
        base.UseDefaultCredentials = value;
        this.useDefaultCredentialsSetExplicitly = true;
      }
    }
    
    /// <remarks/>
    public event CreateDataSetCompletedEventHandler CreateDataSetCompleted;
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateDataSet", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public System.Data.DataSet CreateDataSet(System.Data.DataSet param) {
      object[] results = this.Invoke("CreateDataSet", new object[] {
            param});
      return ((System.Data.DataSet)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginCreateDataSet(System.Data.DataSet param, System.AsyncCallback callback, object asyncState) {
      return this.BeginInvoke("CreateDataSet", new object[] {
            param}, callback, asyncState);
    }
    
    /// <remarks/>
    public System.Data.DataSet EndCreateDataSet(System.IAsyncResult asyncResult) {
      object[] results = this.EndInvoke(asyncResult);
      return ((System.Data.DataSet)(results[0]));
    }
    
    /// <remarks/>
    public void CreateDataSetAsync(System.Data.DataSet param) {
      this.CreateDataSetAsync(param, null);
    }
    
    /// <remarks/>
    public void CreateDataSetAsync(System.Data.DataSet param, object userState) {
      if ((this.CreateDataSetOperationCompleted == null)) {
        this.CreateDataSetOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateDataSetOperationCompleted);
      }
      this.InvokeAsync("CreateDataSet", new object[] {
            param}, this.CreateDataSetOperationCompleted, userState);
    }
    
    private void OnCreateDataSetOperationCompleted(object arg) {
      if ((this.CreateDataSetCompleted != null)) {
        System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
        this.CreateDataSetCompleted(this, new CreateDataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
      }
    }
    
    /// <remarks/>
    public new void CancelAsync(object userState) {
      base.CancelAsync(userState);
    }
    
    private bool IsLocalFileSystemWebService(string url) {
      if (((url == null) 
            || (url == string.Empty))) {
        return false;
      }
      System.Uri wsUri = new System.Uri(url);
      if (((wsUri.Port >= 1024) 
            && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
        return true;
      }
      return false;
    }
  }
  
  /// <remarks/>
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.1")]
  public delegate void CreateDataSetCompletedEventHandler(object sender, CreateDataSetCompletedEventArgs e);
  
  /// <remarks/>
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.1")]
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.ComponentModel.DesignerCategoryAttribute("code")]
  public partial class CreateDataSetCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal CreateDataSetCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
        base(exception, cancelled, userState) {
      this.results = results;
    }
    
    /// <remarks/>
    public System.Data.DataSet Result {
      get {
        this.RaiseExceptionIfNecessary();
        return ((System.Data.DataSet)(this.results[0]));
      }
    }
  }
}

#pragma warning restore 1591

自動生成のコードなので、編集する方が悪いと言われるかも知れませんが .NET 1.1 では partial (型) (C# リファレンス) が使えないので直接編集している可能性もある訳で、変換ログに載せてくれると助かるのになぁと。


追記:MS Connect に挙げてみました。