2

我在 Visual Studio 2008 中有一个 ac# Web 应用程序项目,我想对其进行预编译以进行部署。在查看了各种选项之后,似乎他们都有一些问题 - 也许有人可以对此提出他们的想法:

该项目受源代码控制,还包含许多从项目中排除的文件。

Web 部署项目不起作用。如果我尝试使用 wdp 进行编译,aspnet_compiler.exe 也会尝试编译所有排除的文件。我不想在 msbuild 脚本中维护排除列表。

有没有办法告诉 msbuild 仅使用 csproj 文件中指定的文件/项目,将它们复制到中间文件夹并从不包含任何排除文件的该副本构建 aspnet_complier.exe?

该网站依赖于其他 3 个 csproj 文件。

谢谢!

4

2 回答 2

1

您可以让 msbuild 任务隐藏(attrib +h)或删除不需要的文件...

  <PropertyGroup>
    <MyLogFile>kaantologi.txt</MyLogFile>
    <MyWebSourcePath>c:\sourecontrol\myweb</MyWebSourcePath>
    <!-- *.tmp and .exclude and etc: -->
    <MyCleaup>
      attrib $(MyWebSourcePath)\*.tmp -r -s -h -a /s >>$(MyLogFile)
      del $(MyWebSourcePath)\*.tmp /q /s >>$(MyLogFile)
      attrib $(MyWebSourcePath)\*.exclude +h
    </MyCleaup>
  </PropertyGroup>
  <Target Name="MyClean">
    <Exec Command="$(MyCleaup)" />
  </Target>
  <Target Name="MyFinal">
    <Exec Command="attrib $(MyWebSourcePath)\*.exclude -h"/>
  </Target>
  <Target Name="MyBuild">
    <CallTarget Targets="MyClean" />
    <CallTarget Targets="MyCompile" /><!--...-->
    <CallTarget Targets="MyFinal" />
  </Target>

或者您可以使用解决方案文件 (.sln) 并将您的 csproj 放在那里并构建它。

附言。不完全是您的问题,但这可能会有所帮助(它适用于网站,而不适用于 Web 应用程序):

无法使用 msbuild 或使用 cc.net 的 aspnet_compiler 发布

于 2009-12-09T14:04:17.537 回答
0

有什么理由不能将 aspnet_compiler.exe 作为部署脚本的一部分运行吗?
如果不使用这些文件,为什么还在那里?

建议:在部署时运行编译器或删除文件

于 2009-12-04T06:00:04.547 回答