我一直在Visual Studio中使用鼠标右键单独发布网站,除了手动工作太多外,一切都很好。最近我改为使用构建脚本来调用aspnet_compiler来发布ASP.NET Web应用程序。在我的构建脚本中,我会做类似下面的事情:
sh "#{aspnet_compiler} -p ../src/webapp -v targetDir ./publish –u"
我的项目目录结构如下所示:
/build/rakefile.rb
/build/publish/ --published site goes here
/src/website/bll/ --business logic goes here
/src/website/ --aspx pages
/src/website/code/ --some c# code
当调用aspnet-compiler时,一切正常,除了 / src / website / code /下的c#代码不会被编译。在我看来,aspnet编译器在bll目录下编译c#代码然后 xcopied / src / website / 下的所有内容到发布目录(包括/ src / website / code / )。我不知道我是不是使用正确的开关调用aspnet-compiler,或者这是所希望的行为?
请帮助谢谢!
答案 0 :(得分:2)
我发现了自己的问题。
首先,我的rake构建脚本最终看起来像这样:
sh "#{aspnet_compiler} -f -fixednames -u -p ../src/website -v / ./publish"
鼠标右键单击Visual Studio中的“发布”的输出行为与调用aspnet_compiler不同。
右键单击发布将:
调用aspnet_compiler时的地方:
发布任务后有一个清理任务基本上删除了bin下的.dll扩展名以外的任何内容。
无论如何,现在我已经学到了新的东西。
答案 1 :(得分:1)
在构建机器上使用aspnet_compiler时我遇到了类似的问题(我使用过MSBuild)。我的解决方案是在调用aspnet_compiler之前构建解决方案。 在MSBuild中,它看起来像:
<MSBuild Projects="$(PhysicalPath)\solutionName.sln" Properties="Configuration=Debug"/>
您也可以使用devenv solutionName.sln / build(如果不使用MSBuild)。