那么,问题是什么?
问题是Visual Studio认为.csproj.user是正在运行的项目的依赖项。
让我们假设以下内容:
X
作为启动项目。 X.csproj.user
个文件。现在考虑以下事件流程:
假设步骤2中没有构建任何内容(因为解决方案完全是最新的),是否会在步骤3和6中构建任何内容?
答案是肯定的,原因如下:
X.csproj.user
文件实际上是由Visual Studio创建的。接下来会发生的是X.csproj.user
文件被Visual Studio视为项目X
的依赖项。刚刚创建的文件比项目二进制文件更新,因此Visual Studio构建项目X
。这解释了为什么项目是在第3步建立的。X.csproj.user
文件中记录此协议。因此,在项目开始运行后,文件会再次被修改。重新启动调试会话将再次构建项目X
,之后所有X.csproj.user
再次比一秒钟之前构建的二进制文件更新。这解释了为什么该项目是在步骤6建立的。幸运的是,第8步没有建立。
叫我小气,但我想避免在第3步和第6步的构建。问题是我不能检查X.csproj.user文件,因为这可能会造成人们意外的混乱检查他们的私人变化。
另一方面,我无法将其默认内容(以及启用Silverlight调试的协议)移动到X.csproj
。嗯,我可以,但它只是被忽略了。
所以,这是我的问题 - 是否可以将.csproj.user
中存储的内容分成两组:
.csproj
文件中拥有的内容。它将被签入。Visual Studio已经允许对某些属性进行此分离 - 请参阅Web应用程序项目的Web属性选项卡中的将服务器设置应用于所有用户(存储在项目文件中)复选框 - {{3} }。但是,这还不够。
关于如何防止上述冗余构建的任何其他想法也是受欢迎的。