c# - 我如何获得 Visual Studio 解决方案来构建 MVC 项目并将其运行到另一个文件夹?

标签 c# asp.net-mvc-3 visual-studio-2010 build project

首先,如果我遗漏了一些明显的东西,但我似乎无法在任何地方找到答案,我深表歉意!

我有一个解决方案,其中包含许多包含支持类和 Controller 等的类库项目以及一个包含 View 的 MVC 项目。

我想要的是能够将这组项目构建到另一个位置(即 c:\build)并能够从该构建位置运行 VS 调试。这样一来,dll 和 pdb 文件就不会不断更新和 checkin 源代码管理,而是默认情况下简单地构建到用户 PC 上的另一个位置。

我所做的是更改 csproj xml 文件以在其中包含以下条目。

<BaseOutputPath>c:\build\$(AssemblyName)\$(Configuration)\</BaseOutputPath>
<OutputPath>$(BaseOutputPath)\bin\</OutputPath>
<BaseIntermediateOutputPath>$(BaseOutputPath)\obj\</BaseIntermediateOutputPath>

现在这对于类库项目和由 MVC 项目本身创建的 dll 来说非常有效。 VS 创建相关文件夹并将正确的 dll 文件构建到其中,包括将任何依赖项目 dll 构建到此文件夹结构中。

然而,在 MVC 项目中似乎也发生了什么,它似乎仍然将依赖的 dll 构建到项目的\bin 文件夹中(但不在那里构建自身)。似乎当您运行该项目时,它会尝试从该项目的这个\bin 文件夹中的代码运行,但由于它找不到 MVC 项目的 dll,因此失败了。

有没有办法阻止 VS 将依赖的 DLL 文件构建到\bin 文件夹中,并告诉它查看构建的 DLL 的构建位置?

我在 MSDN 网站上查看了有关 proj 文件的内容,并提出了许多不同的解决方案,但没有一个有效。

如有任何帮助,我们将不胜感激。

最佳答案

希望此行为依赖于 MSBuild 而不是 VSBuild,因为这两个构建过程不同。如果幸运的话,这与 MSBuild 遵循相同的行为,我会遵循 MSBuild 调试过程:

与 MSBuild 中的任何神奇行为一样,在您的 .CSProj 文件中查找任何 import target= 代码并找到这些文件。遵循这些步骤将引导您进入做出任何决定的部分。

您可以将 VS 的调试器附加到您的构建过程 - http://blogs.msdn.com/b/visualstudio/archive/2010/07/06/debugging-msbuild-script-with-visual-studio.aspx + http://blogs.msdn.com/b/visualstudio/archive/2010/07/09/debugging-msbuild-script-with-visual-studio-2.aspx

此外,您可以暂时提高构建的详细程度 http://blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx

关于c# - 我如何获得 Visual Studio 解决方案来构建 MVC 项目并将其运行到另一个文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11101302/

相关文章:

c# - 将项目列表转换为树的通用方法

asp.net-mvc - 对静态文件的请求正在命中 ASP.NET MVC3 中的托管代码

jquery - 如何在 asp.net mvc 3 razor 中添加新项目后刷新表

c# - 如果一次运行一个单元测试,则单元测试通过良好,如果运行 "All Tests in Solution",则 FileLoadException

visual-studio-2010 - 如何在 Visual Studio 中轻松识别同一代码库的不同分支?

c# - 实现接口(interface)和匹配属性的 MEF 加载类型

c# - Dispatcher.Invoke 是否在调用线程上阻塞?

c# - 如何将 Visual Studio 中的所有源代码导出到一个文本文件中?

c# - 如何 autodoc .Net Google 代码项目?

asp.net-mvc - 一起使用 ASP.Net MVC 和 node.js