010*_*101 5 c# msbuild visual-studio
我想显示一个字符串,告诉用户使用哪个构建配置来构建应用程序。例如:
如果命令行类似于:
msbuild project.sln /t:Build /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)
然后在源代码中,我想这样做:
Console.Writeline("You are running the " + <get the /p:Configuration value> + " version" );
Run Code Online (Sandbox Code Playgroud)
用户会看到:
您正在运行 Release 版本
我知道,我们可以宣布在命令条件编译符号(#定义),例如提示符如何定义在这篇文章中和这一个。但我想使用名为Configuration.
没有办法做到这一点,除非像你所说的=使用#if。MSBuild 配置名称只是项目文件中用于构建项目的特定风格的配置集的名称。默认情况下,您无权从代码中访问此配置名称。
我看到有两种方法可以更改代码中的字符串:
a)正如你所说 - 你可以指定条件编译符号,所以你可以做类似的事情
#if DEBUG
const string Flavor = "Debug";
#else
const string Flavor = "Release";
#endif
...
Console.WriteLine("You are running the " + Flavor + " version" );
Run Code Online (Sandbox Code Playgroud)
b) 您可以使用项目文件并根据配置包含不同的文件集。如果您将卸载项目并将 csproj 作为文件打开 - 您将看到例如
<ItemGroup>
<Compile Include="MyApp.cs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
您可以更改为类似以下内容:
<ItemGroup>
<Compile Include="MyApp.Release.cs" Condition="'$(Configuration)'=='Release'" />
<Compile Include="MyApp.Debug.cs" Condition="'$(Configuration)'=='Debug'" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
因此,这就是为每个配置包含不同文件集的方法,您可以在其中指定用户现在拥有的配置。
| 归档时间: |
|
| 查看次数: |
8911 次 |
| 最近记录: |