为 csproj 禁用发布配置

Publish Configuration disabled for csproj

为什么我不能更改下图中显示的这些设置?

这是一个 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 作为替代方案,但现在我想了解更多相关信息。

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

也可以用文本编辑器查看 .csproj 文件,记事本就可以了。请注意 <PropertyGroup> 元素,其中一些元素具有 Condition 属性,可以为特定配置启用它们。发布属性位于没有条件的 PropertyGroup 中。

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