2011-03-07 49 views
0

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

的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 
+0

是什么加/ V:诊断告诉你的输出路径和你的属性替代的作用? – 2011-03-07 22:34:54

+0

它给了我“project_3d958438-10f1-4211-bc7f-f0a5e5601c3f_AspNetPhysicalPath = .. \ foo” – gh9 2011-03-08 17:32:37

回答

0

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

  • 在解决方案资源管理器中,选择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>