如何防止Visual Studio创建license.licx

时间:2013-08-05 21:12:04

标签: visual-studio devforce devexpress-windows-ui

我们在项目中使用第三方控件。几乎每当我双击具有设计视图的文件时,Visual Studio都会尝试用英雄的努力来提升设计师,并且在一些无响应之后,它会将license.licx文件提供(生成)到我们的解决方案中。这会不必要地干扰源代码控制:文件添加也会修改csproj,并且原始代码文件和designer.cs也会被检出(尽管它们没有任何修改)。

  1. 我只想看代码(右键单击,查看代码),我不想看到设计师的视图。
  2. 每次我需要撤消不必要的更改并且需要花费时间(我们的解决方案很复杂),而Visual Studio再次没有响应,因为它会在csproj更改后重新加载整个shebang。
  3. 当我双击时,我立即意识到我做了什么,但那时已经太晚了,发条开始磨砺。
  4. 如果有人知道如何禁用该licx的添加,请告诉我。仅供参考:相关的第三方库是DevExpress WinForms和IdeaBlade DevForce Classic(它与DevExpress有一些集成)。我使用VS 2012。 我们的产品是最终用户产品,而不是第三方库。

    澄清:我们正在讨论开发环境。请参阅How does the Licenses.licx based .Net component licensing model work? - 不建议将其保留在源代码管理中。我不想就此辩论。让我们专注于如何防止Visual Studio一直尝试创建它。

5 个答案:

答案 0 :(得分:11)

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

您可以通过控制台指定前后构建事件,也可以右键单击项目并选择属性 - >建立活动。希望这可以帮助。

答案 1 :(得分:3)

If anyone is looking for solution for this problem because they are using precompiled licenses via Lc.exe tool and want to prevent licenses.licx from conflicting on build server, edit your csproj file, and change line that looks like this:

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

into this:

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

答案 2 :(得分:3)

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

您可以通过以下方式执行此操作:

  • 右键单击具有表单<。li>的.cs文件
  • 选择“打开方式......”
  • 选择“CSharp Editor”(或VB)
  • 点击“设为默认值”
  • 并确定

如果您想稍后更改它,请按照相同的步骤选择“CSharp Form Editor”。

答案 3 :(得分:0)

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

答案 4 :(得分:-3)

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