为csproj禁用发布配置

时间:2015-11-11 21:41:00

标签: c# visual-studio-2015 clickonce publishing csproj

为什么我无法更改下图所示的设置? CSProj Properties windows showing disabled configuration profile

这是一个clickOnce应用程序,我的问题是我想根据发布路径,程序集名称,产品名称,安装URL进行更改,并根据构建配置执行一些app.config转换。我能够通过手动编辑csproj来实现这一点

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <AssemblyName>someApplicationTest</AssemblyName>
    <ProductName>Some Application Test</ProductName>
    <PublishUrl>c:\publish\someApplicationTest\</PublishUrl>
    <InstallUrl>http://sub.example.com/someApplicationTest/</InstallUrl>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <AssemblyName>someApplication</AssemblyName>
    <ProductName>Some Application</ProductName>
    <PublishUrl>c:\publish\someApplication\</PublishUrl>
    <InstallUrl>http://sub.example.com/someApplication/</InstallUrl>
</PropertyGroup>

我很困惑为什么在visual studio中禁用这些选项以及我是否遗漏了某些内容。也许我很困惑,这些控制甚至不是为了这个目的。

此外,我将在稍后调查Squirrel.Windows,但现在我想了解更多相关信息。

1 个答案:

答案 0 :(得分:1)

这只是项目文件结构的直观表示。 某些设置可以针对不同的配置使用不同的值。其他人只有一个值不依赖于配置。第一组的最佳示例是“构建”选项卡中的设置。当然,您希望在发布版本中以不同方式构建程序。因此,配置组合已启用。

还可以看看带有文本编辑器的.csproj文件,Notepad会做得很好。请注意<PropertyGroup>元素,其中一些元素具有Condition属性,可以为特定配置启用它们。发布属性位于PropertyGroup中,没有条件。

因此,对于“发布”选项卡中的设置,Microsoft决定不必进行特定于配置的设置。如果您考虑一下这是有道理的,您只会发布您的发布版本。好吧,通常。因此组合被禁用。功能,而不是错误。