14

我们在项目中使用 3rd 方控件。几乎每次当我双击一个也有设计视图的文件时,Visual Studio 都会尝试用英勇的努力来调动设计器,并且在一些反应迟钝之后,它会在我们的解决方案中提供(产生)一个 license.licx 文件。这不必要地干扰了源代码控制:文件添加也修改了 csproj,并且原始代码文件和 Designer.cs 也被检出(尽管它们没有任何修改)。

  1. 我只想看代码(右键,查看代码),不想看设计器视图。
  2. 每次我需要撤消不必要的更改并且这需要时间(我们的解决方案很庞大),而 Visual Studio 再次无响应,因为它会重新加载整个 shebang,因为 csproj 更改了。
  3. 当我双击时,我立即意识到我做了什么,但那时已经太晚了,发条开始转动。

如果有人知道如何禁用添加该 licx,请告诉我。仅供参考:相关的第三方库是 DevExpress WinForms 和 IdeaBlade DevForce Classic(与 DevExpress 有一些集成)。我使用 VS 2012。我们的产品是最终用户产品,而不是第三方库。

澄清:我们谈论的是开发环境。请参阅基于 Licenses.licx 的 .Net 组件许可模型如何工作?-- 不建议将其保留在源代码管理中。我不想讨论这个。让我们关注如何防止 Visual Studio 一直尝试创建它。

4

5 回答 5

12

您可以创建一个为您删除 .licx 文件的构建后事件。我们已经处理了我们团队的这种烦恼,除了手动排除或删除它之外,构建后事件是您最好的选择。每次打开 Windows 窗体时,如果该窗体引用或使用任何第 3 方 .dll,则将再次添加该文件。

您可以通过控制台或右键单击项目并选择“属性”->“构建事件”来指定构建前和构建后的事件。希望这可以帮助。

于 2013-08-06T02:21:21.367 回答
3

如果有人正在寻找此问题的解决方案,因为他们通过 Lc.exe 工具使用预编译的许可证,并希望防止 licenses.licx 在构建服务器上发生冲突,请编辑您的 csproj 文件,并更改如下所示的行:

<EmbeddedResource Include="Properties\licenses.licx" />

进入这个:

<ItemGroup Condition=" '$(Configuration)' != 'Release' " > <EmbeddedResource Include="Properties\licenses.licx" /> </ItemGroup>

于 2016-10-20T19:12:27.790 回答
3

对于您的第 1 点,您可以阻止双击打开设计器,而是默认打开代码编辑器。

您可以通过以下方式做到这一点:

  • 右键单击具有表单的 .cs 文件
  • 选择“打开方式...”
  • 选择“CSharp 编辑器”(或 VB)
  • 点击“设为默认值”

如果您想稍后将其更改回来,请按照相同的步骤但选择“CSharp 表单编辑器”。

于 2016-11-21T10:33:46.877 回答
0

如果您使用EmptyLicensesLicx NuGet 包,它将Licenses.licx在每次构建时在您的项目中创建一个空文件(这是您真正需要的)。

于 2019-11-14T15:10:32.667 回答
-4

license.licx 很重要。您确实希望在使用第三方许可组件的项目中使用它。如果您不使用第三方组件,则不会添加 licences.licx 文件。

于 2013-08-05T21:17:12.503 回答