WPF项目多个版本以及VS2015 Express下的不同版本

时间:2018-07-31 10:19:24

标签: c# wpf visual-studio-2015

我在VS2015 Express下有一个WPF项目(最终我可以切换到VS2017),为此我希望有一些不同的版本:

  • 图标文件
  • 变量值
  • exe名称
  • (也许还有其他东西,例如语言,但我可以处理变量,我猜)

例如:

  • 一个人将生成将带有file.Soc1.ico的MyProject_Soc1_Val1.exe。 作为图标文件,并且MyVariable = Val1
  • 另一种使用file.Soc2.ico和MyVariable = Val2构建MyProject_Soc2_Val2.exe
  • ...

理想情况下,我想一键构建所有内容

有可能吗?又如何?

Thx

1 个答案:

答案 0 :(得分:0)

好吧,我查看了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文件中的信息不正确。

变量

我在“我的项目”>“属性”>“构建”>中添加了条件编译符号SOCi(对于每个项目配置i)。

在C#代码中:

int MyVar;
#if SOC1
    MyVar = 1;
#elif SOC2
    MyVar = 2;
#endif

我猜很好。

其余

  • 我终于没有更改exe名称,但我想我可以更改 .csproj,方法是在AssemblyName上添加条件
  • 我无法同时编译2个配置,但这没什么大不了的

在将其标记为解决方案之前,我将稍等片刻,以防有人发表评论或更正。