【问题标题】:Output directory when building a WCF project in Visual Studio在 Visual Studio 中构建 WCF 项目时的输出目录
【发布时间】:2011-01-13 07:37:18
【问题描述】:

我有一个设置为在 Debug x86 中构建的 Visual Studio 2010 解决方案。因此,Visual Studio 将输出路径设置为 \bin\x86\Debug,这看起来很合乎逻辑。

该解决方案包含大约 50 个项目;启动项目是 WCF 项目。

当我进行构建时,我希望所有输出 dll 都转到 \bin\x86\Debug,因为这是在项目设置中设置的。但奇怪的是,我看到在 bin\x86\Debug 中创建了 dll。如果输出路径未设置为该目录,为什么 Visual Studio 会将任何 dll 放在 \bin 中?似乎所有的dll都进入\bin\x86\Debug,所有的dll除了启动项目进入\bin。知道为什么会这样做吗? (我们有其他不使用 WCF 的解决方案,他们没有这个问题。)

另一个烦恼是,如果我从 Visual Studio 运行服务,然后尝试在 Web 浏览器中访问我的服务,通过转到 http://localhost:1240/MyService.svc,它不起作用,因为启动项目 dll 从/斌。因此,我必须手动将这个 dll 从 \bin\x86\Debug 复制到 \bin,以便找到所有 dll 并且服务正常运行。 (我们当然可以添加一个自定义的构建后步骤来执行复制,但您会认为会有更好的方法!)

对于那些从事 WCF 项目的人,您是否将输出路径保留在 \bin\x86\Debug? (也许有一种方法可以配置服务,例如在 web.config 或 .svc 文件中,以便它知道二进制文件在 \bin\x86\Debug 而不是 \bin 中?)或者您是否将输出路径更改为\bin 以便您可以直接从 Visual Studio 运行您的服务?

【问题讨论】:

    标签: wcf visual-studio-2010


    【解决方案1】:

    如果您打开 WCF Hosting 项目的属性页并转到选项卡 Build,则在此标记的 Output 部分下有一个包含输出二进制文件位置的文本框。

    对于 WCF 项目,无论构建类型如何(例如 Debug、Release),二进制文件都应转到 bin 目录。确保此值已正确配置。

    需要为每个构建类型\配置配置值。

    【讨论】:

    • 是的,那个文本框就是我在帖子中谈到的“输出路径”。所以你说你只是把它设置为 bin,故事结束。看起来很奇怪,如果你改变这个输出路径,大多数文件仍然会进入 bin,不是吗?
    • 对于非 WCF 项目默认输出路径指向 bin\[BuildConfiguration] 文件夹。由于 WCF 服务希望 dll 存在于 bin 目录中而不是任何子目录中,因此如果从 Visual Studio 创建 WCF 项目的默认项目配置是 bin 文件夹。
    • 这让我做了一些 MVC3 的事情,其中​​二进制文件根据解决方案配置管理器设置进入 bin\x86\debug。希望这将有助于下一个人四处乱窜....只需将站点输出更改为 bin\
    • 这很可悲,我不想将代码和二进制文件分开,但 MS 只是把事情搞砸了。
    【解决方案2】:

    如果您出于某种原因需要来自不同文件夹中不同构建配置的不同输出,您可以像第一次那样指定它们,并使用从指定输出文件夹复制到 bin 的构建后事件命令行。 喜欢:

        - untested code -  
        COPY/Y "$(OutDir)\*.*" "$(SolutionDir)$(ProjectName)\bin\"  
        - untested code -  
    

    【讨论】:

    • 也许你应该在发帖前测试一下?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多