我在Visual Studio 2008中有一个c #Web应用程序项目,我想要进行预编译以进行部署。在查看各种选项之后,似乎所有这些选项都存在一些问题 - 或许有人可以就此发表意见:
该项目受源代码管理,并且还包含许多从项目中排除的文件。
Web部署项目不起作用。如果我尝试使用wdp进行编译,aspnet_compiler.exe也会尝试编译所有排除的文件。我不想在msbuild脚本中维护一个排除列表。
有没有办法告诉msbuild只使用csproj文件中指定的文件/项目,将这些文件/项目复制到一个中间文件夹,并从这个不包含任何排除文件的副本中构建aspnet_complier.exe?
该网站与其他3个csproj文件有所依赖。
谢谢!
答案 0 :(得分: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应用程序):
Unable to publish using msbuild or aspnet_compiler using cc.net
答案 1 :(得分:0)
您有什么理由不能将aspnet_compiler.exe作为部署脚本的一部分运行吗? 如果不使用这些文件,为什么会这样?
建议:在部署时运行编译器或删除文件