2012-06-19 34 views
2

首先,我很抱歉,如果我失去了一些明显的东西,但我似乎无法找到答案的任何地方!如何获得Visual Studio解决方案来构建并运行一个MVC项目到另一个文件夹?

我所拥有的是一些包含支持类和控制器等类库项目和包含视图的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文件,并拿出了一些不同的解决方案,但他们都没有工作。

任何帮助将不胜感激。

+2

如何刚刚从源头控制取出的DLL。你使用什么源码控制系统? – Maess

+2

您的VCS应忽略二进制文件。例如,不要让它版本化bin文件夹。 – jrummell

+0

我们使用git,它不会忽略文件夹级别的文件,我们不能忽略dll文件,因为我们有一些第三方dll文件需要包含在项目中 – ScottG

回答

1

希望这种行为是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

相关问题