【问题标题】:Publish Configuration disabled for csproj为 csproj 禁用发布配置
【发布时间】:2015-11-11 21:41:00
【问题描述】:

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

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

【问题讨论】:

  • 您是否尝试过创建新项目并导入所有表单/代码?
  • 不,我没有,但我很好奇你在用这种方法寻找什么。
  • 了解您是否有影响禁用字段的配置
  • 在 Visual Studio 2015 Enterprise 中创建新的 WPF 项目仍然存在同样的问题。与 Web 应用程序 (ASP.NET 4.6.1) 相同,我没有导入任何现有代码。

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


【解决方案1】:

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

还可以使用文本编辑器查看 .csproj 文件,记事本就可以了。请注意&lt;PropertyGroup&gt; 元素,有些元素具有Condition 属性,可以使它们用于特定配置。发布属性位于没有条件的 PropertyGroup 中。

因此,对于“发布”选项卡中的设置,Microsoft 决定不必针对某个配置进行设置。如果您考虑一下,这是有道理的,您只会发布您的 Release 版本。嗯,通常。所以连击被禁用。功能,而不是错误。

【讨论】:

  • 我明白,在正常情况下,只发布发布版本是有意义的。但是,当您使用发布配置文件为不同阶段(例如开发、暂存等)进行构建时呢?然后您使用 clickOnce 发布。
  • 你问“为什么这些选项被禁用”,我解释了。您的工作流程不是微软预测的工作流程应该有点明显。没有人这样做,这不是 CO 的本意。谷歌“.net alm tooling”取得成功。
  • 好吧,我只是好奇为什么我会被控件嘲弄,好像有人在某些时候认为这是一个有效的用途,但后来决定反对它,虽然不是真的跟进它,只是禁用了控件...假设我们永远不会真正知道...
  • 我在原始问题中声明了“[如果]这些控件甚至不用于此目的”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 2023-03-13
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多