3

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

我所拥有的是一个解决方案,其中包含多个包含支持类和控制器等的类库项目以及一个包含视图的 MVC 项目。

我想要的是能够将这组项目构建到另一个位置(即 c:\build),并能够从这个构建位置运行 VS 调试。这样 dll 和 pdb 文件就不会不断更新并检查到源代码管理中,并且默认情况下只是简单地构建到用户 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 文件的信息,并提出了许多不同的解决方案,但它们都不起作用。

任何帮助将非常感激。

4

1 回答 1

2

希望这种行为依赖于 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

于 2012-08-07T12:31:00.343 回答