VS2015 Express 下的 WPF 项目多个不同的构建
WPF project mutiple and different builds under VS2015 express
我在 VS2015 express 下有一个 WPF 项目(最终我可以切换到 VS2017),我希望有几个不同的构建:
- 图标文件
- 变量值
- exe 名称
- (也许还有其他的东西,比如语言,但我猜我可以处理变量值)
例如:
- 一个人将构建 MyProject_Soc1_Val1.exe 将有文件。Soc1.ico
作为图标文件和 MyVariable = Val1
- 另一个构建 MyProject_Soc2_Val2.exe 文件。Soc2.ico 和 MyVariable=Val2
- ...
理想情况下,我希望所有的都可以一键构建
这可能吗?以及如何?
感谢
好的,我查看了 MSbuild,并通过这些方式部分解决了我的问题:
首先,我为我希望构建的每个案例创建了一个项目配置。
那么...
Ico 和 SplacshScreen
我关闭了 VS 项目并以这种方式更改了 .csproj 文件:
<PropertyGroup>
<ApplicationIcon Condition=" '$(Configuration)' == 'Release' ">LogoMini.Soc1.ico</ApplicationIcon>
<ApplicationIcon Condition=" '$(Configuration)' == 'Debug' ">LogoMini.Soc1.ico</ApplicationIcon>
<ApplicationIcon Condition=" '$(Configuration)' == 'Soc2' ">LogoMini.Soc2.ico</ApplicationIcon>
</PropertyGroup>
[...]
<ItemGroup>
<SplashScreen Condition=" '$(Configuration)' == 'Debug' " Include="Images\SplahScreen.Soc1.png" />
<SplashScreen Condition=" '$(Configuration)' == 'Release' " Include="Images\SplahScreen.Soc1.png" />
<SplashScreen Condition=" '$(Configuration)' == 'Soc2' " Include="Images\SplahScreen.Soc2.png" />
</ItemGroup>
有点用,但是:
- 当我启动 exe 时,图标不一定是正确的...但我认为这是因为 Windows 将其保存在缓存中。所以应该可以
- 我不太适应,因为现在我得到的信息,例如 VS>project>properties>Build>Icon file 中的信息不正确。
变量
我在“我的项目”>“属性”>“构建”>“条件编译符号”中添加了符号 SOCi(对于每个项目配置 i)。
在 C# 代码中:
int MyVar;
#if SOC1
MyVar = 1;
#elif SOC2
MyVar = 2;
#endif
我想这很好。
剩下的
- 我终于没有改exe的名字,不过我想我可以改
.csproj 通过在 AssemblyName
上添加条件
- 我无法同时编译 2 个配置,但这不是什么大问题
我会稍等片刻,然后再将此标记为解决方案,以防有人评论或更正。
我在 VS2015 express 下有一个 WPF 项目(最终我可以切换到 VS2017),我希望有几个不同的构建:
- 图标文件
- 变量值
- exe 名称
- (也许还有其他的东西,比如语言,但我猜我可以处理变量值)
例如:
- 一个人将构建 MyProject_Soc1_Val1.exe 将有文件。Soc1.ico 作为图标文件和 MyVariable = Val1
- 另一个构建 MyProject_Soc2_Val2.exe 文件。Soc2.ico 和 MyVariable=Val2
- ...
理想情况下,我希望所有的都可以一键构建
这可能吗?以及如何?
感谢
好的,我查看了 MSbuild,并通过这些方式部分解决了我的问题:
首先,我为我希望构建的每个案例创建了一个项目配置。 那么...
Ico 和 SplacshScreen
我关闭了 VS 项目并以这种方式更改了 .csproj 文件:
<PropertyGroup>
<ApplicationIcon Condition=" '$(Configuration)' == 'Release' ">LogoMini.Soc1.ico</ApplicationIcon>
<ApplicationIcon Condition=" '$(Configuration)' == 'Debug' ">LogoMini.Soc1.ico</ApplicationIcon>
<ApplicationIcon Condition=" '$(Configuration)' == 'Soc2' ">LogoMini.Soc2.ico</ApplicationIcon>
</PropertyGroup>
[...]
<ItemGroup>
<SplashScreen Condition=" '$(Configuration)' == 'Debug' " Include="Images\SplahScreen.Soc1.png" />
<SplashScreen Condition=" '$(Configuration)' == 'Release' " Include="Images\SplahScreen.Soc1.png" />
<SplashScreen Condition=" '$(Configuration)' == 'Soc2' " Include="Images\SplahScreen.Soc2.png" />
</ItemGroup>
有点用,但是:
- 当我启动 exe 时,图标不一定是正确的...但我认为这是因为 Windows 将其保存在缓存中。所以应该可以
- 我不太适应,因为现在我得到的信息,例如 VS>project>properties>Build>Icon file 中的信息不正确。
变量
我在“我的项目”>“属性”>“构建”>“条件编译符号”中添加了符号 SOCi(对于每个项目配置 i)。
在 C# 代码中:
int MyVar;
#if SOC1
MyVar = 1;
#elif SOC2
MyVar = 2;
#endif
我想这很好。
剩下的
- 我终于没有改exe的名字,不过我想我可以改 .csproj 通过在 AssemblyName 上添加条件
- 我无法同时编译 2 个配置,但这不是什么大问题
我会稍等片刻,然后再将此标记为解决方案,以防有人评论或更正。