2013-07-09 73 views
0

我希望能够将.cs文件拖放到我的项目中。所以,我有手动修改.CSPROJ文件是“安全”/“不好的做法”吗?

<Compile Include="Controls\MyControl.ascx.cs"> 

则占到001002我想补充一个额外的行

<Compile Include="Accounts\001\Controls\MyControl.ascx.cs"> 

OR

<Compile Include="Accounts\002\Controls\MyControl.ascx.cs"> 

这将允许我根据我的账户覆盖类运行该项目。

以这种方式修改CSPROJ文件是否安全,或者当我添加新文件或依赖项时,visual studio是否会覆盖我的更改?

另外,我的方法是否合理?

+0

你可以修改这个文件,当它加载时,VS会“缓存”新的变化。 CSPROJ是一个读/写文件,而不是只写(比如说,t9输出文件)。 –

+0

我对这个问题的态度如何?这看起来合理吗? – webnoob

+0

你可能会变得非常复杂,并创建一个PreBuild事件来修改基于SYMBOL或其他情况的文件,但我不知道什么时候需要“账号”进行判断调用。 –

回答

3

csproj文件基本上只是一个MSBuild脚本。可以修改它。在你的情况,你通常会使用一个变量,使您只有一个的csproj文件,即:

<Compile Include="Accounts\$(Account)\Controls\MyControl.ascx.cs"> 

那么这个帐号将在您的.settings/.targets文件取决于你定义为环境变量或某处把它从。

+0

这听起来很有希望。我打算写一个工具来自动更新它。您能否将我链接到关于'.settings' /'。tragets'文件的内容? – webnoob

+0

没关系,我现在在MSDN上看。这回答我的问题,更谢谢你的时间。 – webnoob

0

Visual Studio项目文件是由MSBuild脚本使用的XML files。当您在您的项目上工作时,编辑会为您更新。如果您在VS关闭时对其进行更改,则会在下次打开项目时加载这些更改。

0

如果手动编辑它们并不安全,我非常怀疑编辑项目(将其打开为XML)的选项作为解决方案资源管理器上下文菜单中的选项存在。 (你必须先关闭项目才能看到这个选项)

+0

安全是一个不好的选择。我只是想确保任何改变都不会被撤销,但我明白你的观点。谢谢。 – webnoob

相关问题