【问题标题】:Add existing service reference to a new project in a new solution将现有服务引用添加到新解决方案中的新项目
【发布时间】:2017-01-10 15:23:42
【问题描述】:

我有一个 VS2013 C# .net 4.0 解决方案,其中一个 C# 项目(控制台应用程序)有一个名为“Service References”的文件夹。 文件夹中有两个子文件夹

One is : MyReference1, it has files of 
    configuration.svcinfo
    configuration91.svcinfo
    MyApplication1.disco (web service Discovery File)
    MyApplication2.wsdl (web service description language)
    Reference.cs (Visual C# source file)
    Reference.svcmap

Another one  is: MyReference2, it has files of 
    configuration.svcinfo
    configuration91.svcinfo
    MyApplication3.wsdl 
    MyApplication4.disco
    MyApplication4_1.xsd
    MyApplication4_2.xsd
    MyApplication4_3.xsd
    MyProject.MyReference.JobStatus.datasource (visual studio data source file)
    Reference.cs
    Reference.svcmap

现在,由于某些原因,我必须在一个新解决方案(VS2013 C# .net 4.0)中创建一个新项目,其服务引用与上述服务引用完全相同。

在创建了一个新的解决方案和一个新项目(与上述项目具有相同的属性)后,我尝试将上述子文件夹中的上述现有文件添加到我的新项目中。 我创建了一个名为“Service References”的新文件夹以及与上面同名的子文件夹。 但是,当我构建项目时,我得到了错误,例如,

在 Reference.svcmap 中:

错误1 自定义工具错误:无法生成文件:系统找不到指定的文件。 (HRESULT 异常:0x80070002)C:\MyPATH\MyProject\serviceReference\MyReference2\Reference.svcmap

在 Reference.cs 中

错误 5 命名空间“System”中不存在类型或命名空间名称“ServiceModel”(您是否缺少程序集引用?) C:\MyPATH\MyProject\serviceReference\MyReference1\Reference.cs(文件是自动- 由工具生成)

我的项目中的“Service References”文件夹与旧项目中的文件夹“Service References”的区别在于,旧项目中的“Service References”下只有两个子文件夹名称,并且该文件夹中没有文件显示在项目中。但是,在我的项目中,所有文件都会显示,因为我将它们添加为现有项目。

当我右键单击项目并通过在“地址”部分粘贴路径(“服务引用”所在的位置)来添加服务引用时,出现错误:

下载“C:\MyPath\Service References”时出错。

对路径“C:\djx_2014_6_3\MyPath\Service References”的访问被拒绝。

如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

我以管理员身份运行 VS2013。

如何正确添加服务引用?

【问题讨论】:

    标签: c# windows-7 service-reference


    【解决方案1】:

    不要将此文件夹作为文件添加到项目中。

    您必须右键单击项目 -> 添加... -> 服务引用,然后将路径粘贴到 wsdl 文件。为每项服务执行此操作。

    此外,如果您的两个项目都在一个解决方案中,您只需添加对包含此服务的项目的引用,生成的代码将在项目之间共享。右键单击项目 -> 添加... -> 参考 -> 解决方案并检查包含服务的项目。

    【讨论】:

    • 当我将.wsdl文件路径添加到Add service reference中的地址框,然后按“Go”,然后Ok,我得到错误:“”无法签出当前文件,文件可能是只读的或锁定的,或者您可能需要手动检出文件。"
    • 您似乎仍然在项目中包含 service reference 文件夹,并且 Visual Studio 阻止访问它。尝试关闭VS,从解决方案目录中删除文件夹,然后打开VS,从解决方案资源管理器中删除文件夹(它将在.csproj文件中清除它),再次添加->服务引用-> wsdl的路径(此时wsdl不在解决方案目录)。服务代码将从头开始生成。
    • 这些服务有地址吗?您可以通过右键单击该服务并选择“配置服务参考...”选项来找到它。如果您在此处找到地址,请使用此地址按照 Anton 提到的步骤进行操作
    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多