已经有一段时间寻找一个解决方案我自己,我突然想到,我想出了最后一个居然是如此简单:
- Slow Cheetah基于选择的构建转化配置文件配置(例如调试/发布)
- 每个构建配置的属性组以及项目文件中特定的一次性项目属性(例如ProductName和AssemblyName(用于并行安装测试和产品版本),InstallUrl)。
- 执行/目标时指定附加属性(比如ApplicationVersion,MinimumRequiredVersion)通过的msbuild:发布
没有必要复制任何配置文件手动慢猎豹将处理此。点击一次包将在相应的构建配置的输出文件夹中创建(例如bin/Debug或任何你所拥有的)。
的最大优点是,构建为使用Visual Studio相同或自动构建使用的msbuild(除了完全是可选的一些额外的属性)。所有你需要做的添加额外的环境到你的构建是创建新的构建配置和相应缓慢的猎豹转换和项目文件中的属性组。
整个安装与.NET 3.5(不能谈论早期版本),后来至少工作。
也许这对任何人都有帮助。随意询问详情。
PS:属性组看起来像这样(把它们定义了默认的ClickOnce设置在第一组后):
<PropertyGroup Condition=" '$(Configuration)' == 'Demo' ">
<AssemblyName>Com.MyApplication.Main.Demo</AssemblyName>
<InstallUrl>http://demoserver/myapp/</InstallUrl>
<ProductName>My Application %28Demo%29</ProductName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Test' ">
<AssemblyName>Com.MyApplication.Main.Test</AssemblyName>
<InstallUrl>http://testserver/myapp/</InstallUrl>
<ProductName>My Application %28Test%29</ProductName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Prod' ">
<AssemblyName>Com.MyApplication.Main</AssemblyName>
<InstallUrl>http://prodserver/myapp/</InstallUrl>
<ProductName>My Application</ProductName>
</PropertyGroup>
我不知道这个时候发布清单仍然会指将工作到原始服务器?你不能手动编辑清单文件,因为它没有签名? – MickyD 2014-03-31 06:23:32