Alh*_*dos 15 msbuild clickonce publish
我在我的解决方案中使用csproj中的Windows应用程序,并且我想使用命令行生成发布(bat,cmd).
我的剧本是(我\r\n为了更好的阅读):
SET MSBUILD="%SystemRoot%\Microsoft.NET\Framework\v3.5\MSBuild.exe"
SET CARWIN="..\..\Security.CarWin.csproj"
rem msbuild para publish
%MSBUILD% /target:rebuild;publish %CARWIN%
/p:ApplicationVersion="1.0.0.0"
/p:Configuration=release
/p:PublishUrl="C:\ClickOnce\CarWin.WebInstall\Publicacion\"
/p:InstallUrl="http://desserver/carwinclickonce/Publicacion/"
/p:PublishDir="C:\ClickOnce\CarWin.WebInstall\Publicacion\"
Run Code Online (Sandbox Code Playgroud)
注意:我也会尝试使用 /target:publish
但在路径PublishDir或PublishUrl(C:\ ClickOnce\CarWin.WebInstall\Publicacion)中不生成任何文件.
我在这个网站和谷歌看过很多帖子,但我找不到任何解决方案.
Dav*_*ere 24
从命令行运行时使用PublishDir而不是PublishUrl.
msbuild /target:publish /p:Configuration=Release;PublishDir=c:\playground\
Run Code Online (Sandbox Code Playgroud)
您还可以更改版本,例如ApplicationRevision = 666; MinimumRequiredVersion = 1.1
Gam*_*lor 12
看看这个Stack Overflow问题.基本上,PublishUrl从命令行运行ClickOnce时会忽略该属性.但您可以使用其他MSBuild任务轻松添加行为.
我已经创建了一个额外的MSBuild-File,例如a build.csproj.这包含一个publish-task.此任务首先调用目标项目的常规MS-Build.然后,它将结果复制到publish-directory.现在我从命令行调用'build.csproj'而不是reguar项目文件:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Publish" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- project name-->
<ProjectName>MyExampleProject</ProjectName>
<!--properties for the project-build-->
<DefaultBuildProperties>Configuration=Release</DefaultBuildProperties>
<!-- location of the click-once stuff, relative to the project -->
<ProjectPublishLocation>.\bin\Release\app.publish</ProjectPublishLocation>
<!-- Location you want to copy the click-once-deployment. Here an windows-share-->
<ProjectClickOnceFolder>\\TargetServer\deployments</ProjectClickOnceFolder>
</PropertyGroup>
<Target Name="Publish" DependsOnTargets="Clean">
<Message Text="Publish-Build started for build no $(ApplicationRevision)" />
<!-- run the original build of the project -->
<MSBuild Projects="./$(ProjectName).csproj"
Properties="$(DefaultBuildProperties)"
Targets="Publish"/>
<!-- define the files required for click-once-->
<ItemGroup>
<SetupFiles Include="$(ProjectPublishLocation)\*.*"/>
<UpdateFiles Include="$(ProjectPublishLocation)\Application Files\**\*.*"/>
</ItemGroup>
<!-- and copy them -->
<Copy
SourceFiles="@(SetupFiles)"
DestinationFolder="$(ProjectClickOnceFolder)\"/>
<Copy
SourceFiles="@(UpdateFiles)"
DestinationFolder="$(ProjectClickOnceFolder)\Application Files\%(RecursiveDir)"/>
</Target>
<Target Name="Clean">
<Message Text="Clean project" />
<MSBuild Projects="./$(ProjectName).csproj"
Properties="$(DefaultBuildProperties)"
Targets="Clean"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17990 次 |
| 最近记录: |