70

我有一个 VS 2008 C# Web 项目,每当我对其中的文件(甚至不是项目文件本身)进行一些更改时,VS 都会从 csproj 文件中删除一些这样的行:

<SubType>ASPXCodeBehind</SubType>

所以是这样的:

<Compile Include="Default.aspx.cs">
  <DependentUpon>Default.aspx</DependentUpon>
  <SubType>ASPXCodeBehind</SubType>
</Compile>

会变成

<Compile Include="Default.aspx.cs">
  <DependentUpon>Default.aspx</DependentUpon>
</Compile>

但是下次我在这个项目上工作时,它会重新添加这些行!就这样一直来回走动,导致我们的源代码控制系统发生了很多无意义的“变化”。这在 VS 2005 中从来没有发生过,而且对于在同一个项目文件上工作的其他开发人员来说似乎也没有发生过,只是对我来说。

有谁知道为什么会发生这种情况以及我如何阻止它这样做?

4

4 回答 4

11

对我来说,区别取决于 Web 项目是否在 Visual Studio 中打开。

我发现如果在 Visual Studio 中打开项目的情况下将项目文件提交到版本控制,则存在 SubType 元素。关闭解决方案/项目然后从项目文件中删除 SubType 元素。现在,我始终确保在 VS 中关闭项目的情况下执行我的提交,以避免对项目文件进行不必要的更改。

于 2011-09-21T01:13:08.437 回答
6

在 VS2010 上工作并通过删除 solutionFileName.sln.DotSettings.user 文件和 solutionFileName.suo 解决了这个问题。这对我有帮助,试试看。

于 2012-12-10T19:18:03.023 回答
4

将文件内容拆分为多个文件 - 每个类一个文件可能会有所帮助。

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=283434

最新链接:

https://developercommunity.visualstudio.com/content/problem/389773/vs-2017-keeps-removing-and-re-adding-aspxcodebehin.html

于 2008-11-06T21:28:26.220 回答
0

在 Tortoise SVN 中提交项目更改时,这些行也出现在 VS2012 的项目文件中。该项目曾经是一个网站,我将其转换为 Web 应用程序。

我能够使用以下不需要关闭项目的步骤绕过此问题

  1. 在提交 SVN 之前,使用“BUILD > Clean Solution”清理解决方案。
  2. 单击“全部保存”按钮保存项目文件。
  3. 使用 Tortoise SVN 提交更改。
  4. 继续做项目...
于 2014-12-12T13:33:53.697 回答