Asp.net 如何为生成无关项目配置生成

Asp.net 如何为生成无关项目配置生成,asp.net,asp.net-mvc,visual-studio-2013,Asp.net,Asp.net Mvc,Visual Studio 2013,我有一个web项目(asp.net),我有几个模块,应该在主项目的文件夹中构建 我找不到关于它的信息 我只想构建主项目,所有模块也应该构建,但它们不依赖于主项目。好吧,仍然会涉及一些依赖关系。您可以使用任务与主项目一起构建项目。关于如何将msbuild脚本包含到解决方案中,有几个选项,下面是一种可能的方法,允许在不重新加载MainProject和不向其添加依赖项的情况下更改模块列表 假设我们有一个主项目和两个模块:ClassLibrary1和ClassLibrary2。创建一个BuildModu

我有一个web项目(asp.net),我有几个模块,应该在主项目的文件夹中构建

我找不到关于它的信息


我只想构建主项目,所有模块也应该构建,但它们不依赖于主项目。

好吧,仍然会涉及一些依赖关系。您可以使用任务与主项目一起构建项目。关于如何将msbuild脚本包含到解决方案中,有几个选项,下面是一种可能的方法,允许在不重新加载MainProject和不向其添加依赖项的情况下更改模块列表

假设我们有一个主项目和两个模块:ClassLibrary1和ClassLibrary2。创建一个BuildModules.csproj文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="BuildModules" ToolsVersion="4.0">
    <ItemGroup>
        <ModuleProject Include="ClassLibrary1\ClassLibrary1.csproj"></ModuleProject>
        <ModuleProject Include="ClassLibrary3\ClassLibrary3.csproj"></ModuleProject>
    </ItemGroup>
    
    <Target Name="BuildModules">
        <MSBuild Projects="@(ModuleProject)" Properties="OutputPath=..\MainProject\Bin\Debug;Configuration=Debug;" ContinueOnError="true">
        </MSBuild>
    </Target>
</Project>
msbuild.exe的路径可能不同

现在,每次构建时,它都会重新构建程序集,您可以轻松地更改BuildModules.csproj文件中的模块列表

更新1: TFS未部署所有文件。我猜这是因为我们对msbuild等的硬编码路径造成的。请尝试将Pre-build命令移动到MainProject.csproj文件中,在BeforeBuild目标中:

<Target Name="BeforeBuild">
    <MSBuild Projects="..\BuildModules.csproj" Properties="Configuration=Debug"/>
</Target>


虽然我不确定这条路,但应该是这样的。并从build中删除Pre-build命令。

为什么不将这些模块(您指的是类库?)上的引用添加到主项目中?它们实际上不依赖并不重要,但这将使它们在每次构建主项目时都进行构建,并将它们的
.dll
放入bin文件夹,从而解决您的问题。这是主要思想。模块应该是可选的,应用时不带dependencySet
ContinueOnError=false
并再次运行,它说了什么?项目的路径是否正确?是的,路径不正确。但现在我无法从TFS和msbuilder部署。代理复制了所有文件,但IIS文件夹中没有apear@Mediator,嗯。可能是预构建命令没有发射。我已经更新了我的答案,所以我们在项目中使用BeforeBuild目标,而不是Pre-build。它必须在TFS中执行,所以我希望它有帮助。它没有帮助。在agentbuild中创建但未复制到iis文件夹的文件您使用什么来复制?复制何时开始,文件是否存在?如果创建了文件,我想这会解决您原来的问题吗?
<Target Name="BeforeBuild">
    <MSBuild Projects="..\BuildModules.csproj" Properties="Configuration=Debug"/>
</Target>