msbuild覆盖.sln文件的物理路径

时间:2011-03-07 21:48:12

标签: msbuild

我正在寻找一种方法来覆盖.sln文件中的release.aspnetcompiler.physical路径元素。看看micrsoft msbuild参考,它似乎不可能覆盖这个特定的输出。我想知道是否有人通过构建脚本传递了物理路径。 我的脚本如下。谢谢你的帮助

msbuild脚本

 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Target Name="deploy">
        <MSBuild Projects="foo.sln" Properties="Configuration=Release;OutDir=..\temp\;PhysicalPath=\fooBar" ContinueOnError="false" />
      </Target>
    </Project>

解决方案文件

 Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "foo", ".", "{3D958438-10F1-4211-BC7F-F0A5E5601C3F}"
        ProjectSection(WebsiteProperties) = preProject
            TargetFramework = "3.5"
            Debug.AspNetCompiler.VirtualPath = "/foo"
            Debug.AspNetCompiler.PhysicalPath = "..\foo\"
            Debug.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\foo\"
            Debug.AspNetCompiler.Updateable = "true"
            Debug.AspNetCompiler.ForceOverwrite = "true"
            Debug.AspNetCompiler.FixedNames = "false"
            Debug.AspNetCompiler.Debug = "True"
            Release.AspNetCompiler.VirtualPath = "/foo"
            ***Release.AspNetCompiler.PhysicalPath = "..\foo\"***
           Release.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\foo\"
            Release.AspNetCompiler.Updateable = "true"
            Release.AspNetCompiler.ForceOverwrite = "true"
            Release.AspNetCompiler.FixedNames = "false"
            Release.AspNetCompiler.Debug = "False"
            VWDPort = "51644"
            DefaultWebSiteLanguage = "Visual Basic"
        EndProjectSection
    EndProject

1 个答案:

答案 0 :(得分:1)

这应该允许您通过MSBUILD.proj文件中的参数配置Web项目。

  • 在Solution Explorer中,选择Web项目。

  • 在“视图”菜单上,单击“属性页”。

  • 在左侧窗格中,单击“MSBuild选项”。

  • 选择允许此预编译站点可更新。

Team Build and aspnet_compiler.exe

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuid/2003">             
<Target Name="Build">
    <AspNetCompiler VirtualPath="/WebApplication1" PhysicalPath="C:\MyProjects\WebApplication1" TargetPath="C:\MyProjects\WebApplication1\PrecompiledWeb" />
</Target>     
</Project>