我在网上看到了很多关于此的信息,但没有任何明确的信息。具体哪些似乎解决了简单地将Web服务或网站发布到我在构建时指定的特定文件夹的问题。
我正在使用Nant和Nant Contrib:
<target name="build" description="builds the service">
<msbuild project="${buildoutput}\${service.source}\wsMyService.sln" >
<property name="Configuration" value="Release" />
<property name="PublishDir" value="${buildoutput}\${service.target}\" />
<property name="Targets" value="Publish" />
</msbuild>
</target>
任何人都可以告诉我这是怎么做的。我可以在项目的属性页面中更改输出文件夹,但我希望可以从Nant配置它,这样我就可以在构建时指定路径。
答案 0 :(得分:0)
从命令行调用msbuild时,可以传入字符串以分配给msbuild属性。我对NAnt一无所知,所以我认为它必须求助于调用msbuild.exe。所以你可以像这样覆盖msbuild属性:
MsBuild /property:buildoutput=C:\arbitrary\folder\bin\
从命令行指定的这些属性会覆盖您在构建文件中指定的任何内容。
答案 1 :(得分:0)
这是我目前用于使用msbuild构建Web服务的内容:
<Target Name="BuildWebService">
<ConvertToAbsolutePath Paths="$(Root)">
<Output TaskParameter="AbsolutePaths" PropertyName="Root" />
</ConvertToAbsolutePath>
<ItemGroup>
<WebServices Include="$(Root)\services\Solutions\**\*.host.csproj"/>
</ItemGroup>
<MSBuild Projects="%(WebServices.FullPath)"
Targets="Build"
Properties="WebProjectOutputDir=$(Root)\services\build\WebService\%(RecursiveDir);OutDir=$(Root)\services\build\WebService\%(RecursiveDir)\bin\" />
</Target>
希望你能够轻松翻译。