MSBuild OutputPath property and absolute paths
10,302
Solution 1
I'm not sure whether you can do what you're talking about, but you can add something similar to the following:
<PropertyGroup>
<CentralisedBinariesFolderLocation>c:\wherever</CentralisedBinariesFolderLocation>
</PropertyGroup>
<Target Name="AfterBuild">
<Exec Command="xcopy /Y /S /F /R "$(TargetPath)" "$(CentralisedBinariesFolderLocation)"" />
</Target>
Which will copy it to the relevant location after the build.
Solution 2
Try using OutDir instead of OutputPath :
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Deployment|AnyCPU'">
<OutDir>C:\Projects\xxx\$(Configuration)</OutDir>
<EnableUpdateable>true</EnableUpdateable>
<UseMerge>true</UseMerge>
<SingleAssemblyName>xxx.Web.Deployment</SingleAssemblyName>
</PropertyGroup>
Related videos on Youtube
Author by
Frederik Vig
I work as an independent ASP.NET consultant in Oslo, Norway. My blog: http://www.frederikvig.com/
Updated on June 04, 2022Comments
-
Frederik Vig over 1 year
I'm trying to set the OutputPath value to an absolute path:
<OutputPath>c:\Projects\xxx\Deployment</OutputPath>But I get this error:
Error 17 The expression "[System.IO.Path]::GetFullPath(D:\Projects\xxx\trunk\xxx.Web.Deployment\c:\Projects\xxx\Deployment\)" cannot be evaluated. The given path's format is not supported. 1 1 xxx.Web.DeploymentIs there a way to use an absolute path with the OutputPath property? I've tried experimenting with the BaseOutputPath property:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Deployment|AnyCPU'"> <BaseOutputPath>C:\Projects\xxx\</BaseOutputPath> <OutputPath>.\Deployment</OutputPath> <EnableUpdateable>true</EnableUpdateable> <UseMerge>true</UseMerge> <SingleAssemblyName>xxx.Web.Deployment</SingleAssemblyName>But it seems to get ignored. What are BaseOutputPath and BaseIntermediateOutputPath used for?
-
Frederik Vig over 13 yearsThink this is the way to go as well. I have one small problem though, $(TargetPath) returns nothing. Is there another variable I can use to get the deployment path?
-
Frederik Vig over 13 yearsGot it working with: <Exec Command="xcopy /Y /S /F /R $(MSBuildProjectDirectory)\Deployment $(CentralisedBinariesFolderLocation)" />. Not very elegant, but worked in my case. Please let me know if there is a better way! :)
-
Richard Dingwall over 11 yearsI tried this and it output toC:\Projects\xxx\$(Configuration)\_PublishedWebsites\MyApp.Website.